728x90
타입스크립에서 Type Predicate라는 개념이 있다. 다음과 같은 함수가 있다고 하자.
// 왜 이렇게 사용하면 안될까??
function isNumberBool(input: any): boolean {
return typeof input === "number";
}
isNumberBool 함수의 리턴값을 boolean으로 선언하였다. 그냥 보면 문제가 없어보인다. 그러나 사용하면 조금 불편한 점이 생긴다.
let num: any = 5;
if (isNumberBool(num)) {
num; // type이 any임
}
num에 대한 체크후 num을 number로 사용하려고 할때 문제가 생긴다 any타입으로 되어서 또 casting이 필요하다.
function isNumber(input: any): input is number {
return typeof input === "number";
}
let num: any = 5;
if (isNumber(num)) {
num;
// predicate를 사용해주면 안에서 number로 바뀜
// 정확한 타입을 유추할수있다!!
// 일반적으로 하면 유추하기 힘들다.
}
'개발이야기' 카테고리의 다른 글
[TIL]29. Node 환경에서 AWS S3에 이미지 업로드 (0) | 2023.11.29 |
---|---|
[TIL]28. node sequelize 에서 관계 맺기 (0) | 2023.11.23 |
[TIL]26.타입스크립트 Type,Interface (0) | 2023.11.20 |
[TIL]25.bcrypt로 암호화를 해보자! (0) | 2023.11.16 |
[TIL]24.Node sequelize mysql 연결 + model 정의하기 (0) | 2023.11.15 |