Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 703 Bytes

keyword-satisfies-to-support-safe-upcast.md

File metadata and controls

24 lines (20 loc) · 703 Bytes

Keyword satisfies to upport safe upcast

typescript 4.9버전부터 사용 가능한 satisfies는 기존에 사용하던 as처럼 사용하여 upcast를 가능하게 하지만, 조금 더 엄격하게 type을 확인하고, 컴파일타임에서 에러를 확인하는 것이 가능합니다.

as:

// 편리하지만 안전하지 않음 (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  
}