Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- DP
- BOJ
- c++
- 코딩테스트
- dfs
- 코딩일기
- 앱개발
- ps
- 다이나믹프로그래밍
- 타입스크립트
- 백준
- 구현
- 개발자북클럽
- 빅데이터분석
- 그리디
- Typescript
- TS
- 이진탐색
- 프로그래머스
- 알고리즘
- 이코테
- 정렬
- 최단경로
- 코테
- 백준온라인저지
- SQL
- react-native
- 이것이코딩테스트다
- 노마드코더
- bfs
Archives
- Today
- Total
한량처럼 살고 싶다
TypeScript의 Type(3) 본문
1. unknown
해당 변수로 작업을 할 때, 그 변수의 타입을 확인하는 과정을 거쳐야만 작업이 가능하다.
let a: unknown;
let b = a + 1; //에러 발생
if (typeof a === 'number') {
b = a + 1;
}
2. void
함수에서 어떤 것도 리턴하지 않을 때 void를 타입으로 지정한다.
참고로 타입스크립트는 똑똑해서 void를 쓰지 않아도 알아서 void로 인식한다.
function hello():void{
console.log('x');
}
const a = hello();
a.toUpperCase(); //에러 발생
3. never
함수가 절대 리턴을 하지 않고, exception/오류 등을 발생시키는 함수일 때만 사용한다.
아래처럼 생긴 코드에서는 문제가 발생한다.
function hello():never{
return true; //에러 발생, never 타입은 true를 반환할 수 없다.
}
아래와 같은 코드에서는 문제가 발생하지 않는다.
function hello():never{
throw new Error("xxx");
}
또는 타입이 두가지일 수도 있는 상황에서 사용 가능하다.
아래에서 name은 string아니면 number로 타입을 지정해두었고 if 분기문에서 이를 확인한다.
하지만 두 가지 타입이 다 아닐 경우(마지막 else)에 name의 타입을 확인하면 never 타입이 된다.
function hello (name: string|number){
if(typeof name==="string"){
//name은 string
console.log(name);
}
else if (typeof name==="number"){
//name은 number
console.log(name);
}
else {
//name은 never
//정상 작동 시 이 코드는 절대로 작동되지 않는다.
throw Error("this type is error") //정상 작동되지 않았을 시 오류를 던지게 한다.
}
}
'프론트엔드 > TypeScript' 카테고리의 다른 글
TypeScript의 function(3) (0) | 2023.04.23 |
---|---|
TypeScript의 function(2) (0) | 2023.04.23 |
TypeScript의 function(1) (0) | 2023.04.22 |
TypeScript의 Type(2) (0) | 2023.04.21 |
TypeScript의 Type(1) (0) | 2023.04.14 |