
TypeScript의 타입 추론을 개발자가 강제로 지정해주는 것
type Person = {
name: string;
age: number;
};
let person: Person = {} as Person;
person.name = "kjy";
person.age = 27;
person 객체를 빈 객체 {}로 초기화하면서 as Person을 사용해 Person 타입으로 단언한 코드{}는 Person 타입이 아니기 때문에, TypeScript는 오류를 발생as Person을 사용하여 컴파일러에게 해당 객체가 Person 타입이라고 강제로 지정type Dog = {
name: string;
color: string;
};
let dog = {
name: "돌돌이",
color: "white",
breed: "포메라니안",
} as Dog;
Dog 타입에는 name과 color만 존재breed라는 추가 프로퍼티가 포함as Dog를 사용함으로써 TypeScript의 타입 검사를 우회하여 에러가 발생하지 않음단언식 : 값 as 단언
A as B
- A가 B의 슈퍼타입이거나
A가 B의 서브타입이어야 함
let num1 = 10 as never; // A가 B의 슈퍼타입
let num2 = 10 as unknown; // A가 B의 서브타입
let num3 = 10 as string;
number 타입의 슈퍼타입인 unknown도 함께 단언해준다면 오류는 사라짐let num3 = 10 as unknown as string;
어떠한 변수를 선언했을 때
const로 선언한 것과 동일한 효과를 보도록 만들어주는 것let num4 = 10 as const;
- 단
const를 사용하게 될 시 수정 불가능
어떤 값이
null이거나undefined이 아니라고 컴파일러에게 알려줌
type Post = {
title: string;
author?: string;
};
let post: Post = {
title: "게시물1",
author: "KJY",
};
const len: number = post.author?.length;
마지막 줄 author에 ?를 적게 되면 아래와 같은 오류가 발생.

이유는 author가 없으면 전체가 undefined가 되어버리기 때문
이를 해결하기 위해 ?를 !로 바꿔주면 됨
한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard