9P by 0xwof 2022-09-14 | favorite | 댓글 3개
  • 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  
}  

차라리 const assertion을 빼고 satisfies를 넣었음 하는 아쉬움이 있네요,,

앗 const assertion -> 그냥 assertion입니다

점점 복잡해지는 느낌이네요 ㅠ