satisfies: 안전한 업캐스팅 (TypeScript 4.9)
(engineering.ab180.co)-
TypeScript 4.9 가 11월 15일 릴리즈될 예정이며, 9월 20일 부터 베타테스트 예정
- 현재 Playground 에서 nightly 로 사용가능
-
Typescript 4.9 에 “satisfies" 키워드가 추가됨
-
기존의 "as” 키워드와는 달리 안전한 업캐스팅을 지원함
-
원래는 타입이 미리 정해져 있어야만 안전한 업캐스팅이 가능했음
-
"satisfies" 를 이용하면 object 의 하나의 key-value 에 대해서도 편리하게 안전한 업캐스팅이 가능함
-
기존
// 안전하지만 번거롭게 타입정의 해야함 (타입정의)
const object: {
a: number
b: { a: number }
} = {
a: 10,
b: { a: 10, b: 20 } // no error
// b: {} // error
}
// 편리하지만 안전하지 않음 (as)
const object = {
a: 10,
b: { a: 10, b: 20 } as { a: number } // no error
// b: {} as { a: number } // no error (!!!)
}
- satisfies
// 편리하고 안전함
const object = {
a: 10,
b: { a: 10, b: 20 } satisfies { a: number } // no error
// b: {} satisfies { a: number } // error
}