Web-Frontend/TypeScript

[TS] 타입스크립트 객체 프로퍼티 타입 지정 (optional, readonly)

서노리 2023. 11. 8. 17:13
반응형

타입스크립트를 사용해서 객체 프로퍼티의 타입을 지정할 때 쓸 수 있는 특이한 기능들에 대해 알아보자.

 

? (Optional)

?는 선택적인 프로퍼티의 타입을 정의하는 단축어로 해당 타입이거나 undefined라고 해주는 것과 동일한 의미이다.

type Player = {
  name: string,
  age?: number,
}

 

 

const jieun : Player = {
  name: ‘jieun’,
}

const coll : Player = {
  name: ‘coll’,
  age: 20,
}​

age?: number는 age: number | undefined와 같은 의미이며 따라서 위와 같이 age 값을 갖지 않는 객체를 만들 수 있는 것이다.

 

readonly

readonly는 요소들을 읽기 전용으로 만들 때 사용하며, readonly 요소들의 값을 변경하려고 하면 오류가 발생한다.

type Player = {
  readonly name: string, 
  age?: number,
}

const lee: Player = {
  name: 'lee',
}

lee.name = 'choi' // 에러

const numbers: readonly number[] = [1, 2, 3]
numbers.push(1) // 에러

 

반응형