타입 단언

필요한 상황

type Person = {
  name: string;
  age: number;
};

let person: Person = {};

// Person으로 미리 타입을 선언했을 때에는 초깃값에 name, age가 없으므로 타입 오류가 발생됨.
person.name = "신봄";
person.age = 23;
let person = {};
// 아래와 같이 나중에 속성을 추가하기 위해 person에 아무런 타입을 제공하지 않으면, 타입의 초깃값이 {}로 처리됨에 따라, 아래코드가 타입오류가 발생되게 된다.
person.name = "신봄";
person.age = 23;

이를 해결하기 위해 타입 단언 을 사용한다. 타입 단언을 사용하는 방법은 as를 사용하면 된다.

let person = {} as Person;
person.name = "신봄";
person.age = 23;

타입 단언의 조건

아래 두가지 조건 중 한가지를 반드시 만족해야 함.

  • A가 B의 슈퍼 타입이다.

  • A가 B의 서브 타입이다.

다중 단언

절대 좋은 방법은 아니다. 꼭 필요한 상황에서만 이용하기를 권장한다.

const 단언

변수 const로 선언한 것처럼 타입이 변경됨

Non Null 단언

타입스크립트에 null이거나 undefined 가 아님을 알려주는 단언

!을 사용하여, null이나 undefined가 아님을 단언한다.

Last updated