Typescript와 객체

Views:
7
Category:
Post
Posted on:
2023. 10. 20.

Typescript와 객체

타입스크립트에서 보통 객체의 타입을

type SomeObjType = {
  name: string;
  age: number;
  gender: "male" | "female";
  hobby: Array<string>;
};

보통 이런 식으로 정의한다.

하지만 위와 같은 방법으로 타입을 정의하게 된다면

항상 객체 안에는 name, age, gender, hobby 라는 프로퍼티는 꼭 존재해야 한다.

물론 프로퍼티를 옵셔널(?)로 설정하면 괜찮다.

자바스크립트 프로그래밍을 하다 보면 정의하지 않은 프로퍼티가 필요한 경우가 있을 것이다..

필요할때 마다 기존 타입을 상속받아 사용할 수 있지만...

이렇게 객체에 어떤 프로퍼티가 있을지 명확하게 모르는 경우 사용한다.

type Obj = {
    [key: string]: string | number;
};

이런 식으로 사용하면 OK!(프로퍼티에는 리터럴타입만 허용된다고 함)

[주절주절]

동적 타입이 단점이라고 이야기 하지만

그로 인해 유연한 프로그래밍과 재미가 더해 지는 것이라 생각

타입스크립트로 인해 얻는 장점이 많긴 하지만

객체를 다루며 놀이 하는 소소한 재미가 감소

아직 부족한 내가 타입스크립트를 사용하면서도 객체를

결론은 다루는 재미를 느낄 수 있도록 노력해야 겠음

# Typescript와 객체

타입스크립트에서 보통 객체의 타입을
```js
type SomeObjType = {
  name: string;
  age: number;
  gender: "male" | "female";
  hobby: Array<string>;
};
```
보통 이런 식으로 정의한다. 

하지만 위와 같은 방법으로 타입을 정의하게 된다면 

항상 객체 안에는 name, age, gender, hobby 라는 프로퍼티는 꼭 존재해야 한다.

물론 프로퍼티를 옵셔널(?)로 설정하면 괜찮다. 

자바스크립트 프로그래밍을 하다 보면 정의하지 않은 프로퍼티가 필요한 경우가 있을 것이다..

필요할때 마다 기존 타입을 상속받아 사용할 수 있지만...

### 이렇게 객체에 어떤 프로퍼티가 있을지 명확하게 모르는 경우 사용한다.


```
type Obj = {
    [key: string]: string | number;
};
```

이런 식으로 사용하면 OK!(프로퍼티에는 리터럴타입만 허용된다고 함)

[주절주절]


동적 타입이 단점이라고 이야기 하지만 

그로 인해 유연한 프로그래밍과 재미가 더해 지는 것이라 생각

타입스크립트로 인해 얻는 장점이 많긴 하지만 

객체를 다루며 놀이 하는 소소한 재미가 감소

아직 부족한 내가 타입스크립트를 사용하면서도  객체를 

결론은 다루는 재미를 느낄 수 있도록 노력해야 겠음