TypeScript
오늘의 TypeScript
hotIce
2023. 5. 8. 17:05
728x90
- Narrowing
- Type이 아직 하나로 확정되지 않았을 경우 Type Narrowing 써야한다. 타입을 정한다.
- typeof 연산자 활용
- 어떤 변수가 타입이 아직 불확실하면 if 문 등으로 Narrowing 해줘야 조작가능
- (주의) if문 썼으면 끝까지 써야 안전 else, else if 안쓰면 에러로 잡아줄 수도 있다.
- Narrowing으로 판정해주는 문법들(현재 변수의 타입이 뭔지 특정지을 수 있기만 하면 다 인정해준다.)
- typeof 변수
- 속성명 In 오브젝트자료
- 인스턴스 instanceof 부모
function 함수(a : string | number) {
if (typeof a === 'string'){
return a + "1"
} else {
return + 1
}
함수(123);
- Assertion
- 아무때나 쓰지말자
- 언제 쓰나?
- Narrowing 할 때 쓴다. (Union Type을 하나로 확정하고 싶을때 사용)
- 절대 타입을 A에서 B로 변경할 때 사용하지말자.
- 무슨 타입이 들어올지 100% 확실할 때 쓰자.
- As문법을 쓰면 as number해도 문자를 넣어도 아무일 없음 (이런 버그 캐치 못함)
- 즉 남이 짠 코드 수정할 대 왜 타입에러가 나는지 모르겠을 때 비상용으로 사용하자.
- Narrowing 할 때 쓴다. (Union Type을 하나로 확정하고 싶을때 사용)
function 내함수(x :number|string) {
let array :number[] = [];
// 왼쪽에 있는 변수를 number로 덮어쓰여요.(if문 필요없어)
array[0] = x as number;
}
let 이름 :string = "kim";
// Type a -> b (x)
이름 as number;
내함수(123);
728x90