728x90
1. 타입스크립트
1.1 TS 고유의 타입들 - unknown 타입
어떤 타입의 값이 들어올 지 모를 경우에(ex: api 호출의 결과) unknown 타입을 지정해줌으로써 어떤 작업을 하기 위해 unknown 타입을 지정한 변수의 값을 먼저 확인하도록 타입 프로텍션을 받을 수 있다.
예시코드
let a:unknown
if(typeof a === 'number'){
let b = a + 1;
a.concat('안될걸');
// Property 'concat' does not exist on type 'number'.
}
if(typeof a === 'string'){
let b = a.toUpperCase();
let c = a * 1;
// The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
}
1.2 TS 고유의 타입들 - void 타입
void 타입은 아무것도 리턴하지 않는 함수이다.
반환값이 없는 함수에서 따로 지정해주지 않아도 자동으로 타입스크립트가 타입 추론하여 void 타입으로 지정해준다.
function voidFunc1() {
console.log('void');
}
function voidFunc2(arr: string[]) {
arr.forEach((el) => el + 'hi');
}
const a = voidFunc2().toUpperCase(); // 리턴값이 없는 함수이기 때문에 에러발생.
// Property 'toUpperCase' does not exist on type 'void'.
1.3 TS 고유의 타입들 - never 타입
- 리턴값이 없는 에러를 발생시키는 함수
- 함수의 리턴값의 타입이 2가지 이상인 경우
- 무한루프
함수가 절대 리턴하지 않을 때, 위와 같은 경우 never 타입이다.
function neverFunc1():never {
throw new Error('에러');
}
function neverFunc2(name: string | number) {
if (typeof name === 'string') {
name += 'str';
} else if (typeof name === 'number') {
name++;
} else {
// 절대 실행되지 않는 코드
name;
}
}
const neverFunc3 = () => {
while (true) {
console.log('hi');
}
}
728x90
'기록 > Today I learned' 카테고리의 다른 글
22.11.12 토 TIL (0) | 2022.11.12 |
---|---|
22.11.10 목 TIL (0) | 2022.11.10 |
22.10.27 TIL - 포폴앱 타입스크립트 마이그레이션 (0) | 2022.10.29 |
22.10.26 TIL (0) | 2022.10.26 |
22.10.25 TIL (0) | 2022.10.25 |