반응형
any
- 아무 타입이나 될 수 있다는 뜻으로 타입의 보호를 받지 않기를 원할 때 사용
- 비어있는 값을 쓰면 기본적으로 any가 됨
- 자주 사용하는 것은 권장되지 않음
let a = [] // a는 any 타입
const a: any[] = [1, 2, 3]
const b: any = true
a + b // 오류가 나지 않는다.
unknown
- 변수의 타입을 미리 알지 못할 때 사용
- 어떠한 작업을 할 경우 해당 변수의 타입을 먼저 확인한 뒤 사용해야함
let a: unknown
let b = a + 1 // 에러 발생 (타입확인 필요하다.)
// 사용할 때 마다 변수 타입을 지정해야한다.
if(typeof a === 'number'){
let b = a + 1
}
if(typeof a === 'string'){
let b = a.toUpperCase()
}
never
- 함수가 절대 return하지 않을 때 발생
- void와 차이점은 void는 자동으로 undefined를 return
- return하지 않고 오류를 발생시키는 함수의 타입으로 사용
- 자주 사용되지는 않으나 중요함
// 1.함수에서 exception(예외)발생할 경우
function hello(): never {
return ‘hello’ // 에러
}
function fail(msg: string): never {
throw new Error(msg); // 에러나지 않음
}
// 2. 타입이 두가지 일 수도 있는 경우
function hello(name: string | number) {
if(typeof name === ‘string’) {
name // name: string
}
else if(typeof name === ‘number’) {
name // name: number
}
else {
name // name: never
//두 타입 모두 확인했기 때문에 해당 영역은 절대 실행되면 안된다.
}
}
반응형
'Web-Frontend > TypeScript' 카테고리의 다른 글
[TS] 타입스크립트 객체 프로퍼티 타입 지정 (optional, readonly) (0) | 2023.11.08 |
---|---|
[TypeScript] input onChange 타입 오류 해결 (0) | 2023.07.07 |