반응형
1. Narrowing 타입이 아직 하나로 확정되지 않았을 경우
//타입이 어떤 타입인지에 대해 조건식으로 코드를 짜야한다.
//타입이 아직 불확실하다면 Narrowing해줘야 한다.
//주의점은 if문을 사용했으면 끝까지 써야 안전하다. else, else if문까지.
//typeof 변수
//속성명 in 오브젝트자료
//인스턴스 instanceof 부모
function func(x: string | number) {
if (typeof x === 'number') {
return x + 1;
} else {
return x + '1';
}
}
func(123);
function arrFunc(x: number | string): void {
let arr: number[] = [];
if (typeof x === 'number') {
arr[0] = x;
}
}
arrFunc(123);
2. assertion 문법 (타입덮어쓰기)
function myFun(x: string | number) {
let array: number[] = [];
//왼쪽에 있는 변수를 어떤 타입으로 덮여씌우겠다. x 가 number로 덮어씌어진다.
//하지만 이러면 좋지 않다. 아래 이유 외에는 결코 쓰지 않는것이 좋다.
//1. Narrowing 할 때 쓴다. union에서 타입이 애매할 때 사용한다.
//2. 무슨 타입이 들어올지 100% 확실할 때 쓴다.
array[0] = x as number;
}
myFun(30);
반응형
'TypeScript' 카테고리의 다른 글
타입스크립트로 HTML 변경과 조작할 때 주의점들 (0) | 2022.05.12 |
---|---|
타입도 변수에 담아쓴다. type 키워드 써서 & readonly, Literal Types로 만드는 const 변수 유사품 (0) | 2022.05.11 |
union type, any, unknown, 함수에 타입 지정하는 법 & void 타입 (0) | 2022.05.11 |
primitive types 설정법 (0) | 2022.05.11 |
자바스크립트와 타입스크립트의 차이점 (0) | 2022.05.11 |