TypeScript-섹션3. 타입스크립트 이해하기- 타입 단언(7)

손주완·2025년 7월 9일

TypeScript Section3

목록 보기
6/8

1. 타입 단언이란

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

let person: Person = {};
person.name = "";
person.age = 23;

타입스크립트는 위와 같은 방식으로 빈 객체로 초기화가 불가능

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

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

위와 같이 as Person으로 단언해주면 됨.

2. 타입 단언의 조건

값 as 타입 형식의 단언식을 A as B로 표현했을 때,
아래의 두가지 조건중 한가지를 반드시 만족해야 함.
1. A가 B의 슈퍼타입이다
2. A가 B의 서브타입이다

let num1 = 10 as never;   // ✅
let num2 = 10 as unknown; // ✅

let num3 = 10 as string;  // ❌

즉, 같은 수직구조에 속해있어야 타입 단언이 가능하다.

3. 다중 단언 -> 사용x

위의 코드를

let num3 = 10 as unknown as string;

다중으로 단언 가능. 하지만 매우 좋지 않은 방식.

4. const 단언

let num4 = 10 as const;
// 10 Number Literal 타입으로 단언됨

let cat = {
  name: "야옹이",
  color: "yellow",
} as const;
// 모든 프로퍼티가 readonly를 갖도록 단언됨

변수 -> 리터럴 타입
객체 프로퍼터 -> readonly

5. Non Null 단언

type Post = {
  title: string;
  author?: string;
};

let post: Post = {
  title: "게시글1",
};

const len: number = post.author!.length;

위와 같이 값 뒤에 !를 붙여, undefined나 null이 아님을 단언.

0개의 댓글