목차
- tuple
- undefined, null
- any
- TS에만 있는 특이한 데이터 타입(void,unknown,never)
1. tuple이란?
- array을 생성
- 최소한의 길이를 가져야 함
- 특정 위치에 특정 타입이 있어야 함
다음과 같이 배열의 엘리먼트가 순서대로 string, number, boolean 유형인 배열이 있다고 하자.
['son', age, true]
이러한 배열을 타입스크립트로 생성하려면 어떻게 하면 될까?
const player: [ string, number, boolean ] = [
'son', 30, true
]
// 위와 같이 코드를 작성한다면 타입스크립트는 다음과 같이 이해한다
// plyaer는 배열이며
// 3개의 엘리먼트를 가진다.
// 각각의 엘리먼트의 데이터 유형은 배열의 인덱스 순대로, string, number, boolean이다.
player[0] = 1 // 첫번째 엘리먼트의 데이터 유형을 string으로 명시해주었는데 number값을 주었기 때문에 에러 발생
이번엔 지금까지 배운 것 내용 중 tuple과 readonly 속성을 같이 한번 사용해보자
const player : readonly [ string, number, boolean ] = [
'son', 30, true
]
player[0] = 'Kane' // 데이터 유형은 str으로 옳지만, 해당 배열은 읽기 전용 배열이기 때문에 엘리먼트의 값 변경 불가 에러 발생
2. undefined와 null
- 우리가 잘 알고 있는 그 undefined와 null
let a : undefined = undefined
let b : null = null
3. any 타입
- 타입스크립트로 부터 빠져나오고 싶을 때 사용하는 타입
- 가급적 사용하지 않는 것을 권장
const a : any[] = [1,2,3,4]
const b : any = true
a + b // 에러 발생하지 않음
4. 타입스크립트만의 특이한 데이터 유형
4-1. unknown
- 어떤 타입일 지 모르는 변수의 경우 사용하면 타입을 확인하는 과정을 요함
let a: unknown;
let b = a + 1; // 에러 발생
// 따라서 아래와 같이 타입 확인 후 코드 작성
if(type of a === 'number'){
let b = a + 1
}
4-2. void
- undefined를 반환하거나 아무것도 반환하지 않는 함수를 대상으로 사용하는 데이터 유형
- 일반적으로 별도로 void를 지정할 필요 없음
function hello(){
console.log('x')
}
4-3. never
- 함수가 '절대' 반환하지 않을 때 쓰는 데이터 유형
function hello(): never{
return 'X'; //에러 발생
}
function helo(): never{
throw new Error('xxx') // 반환하지 않고 오류를 발생시킴
}
function hello(name:string|number){
if(typeof name === 'string'){
//name의 유형은 'string'
} else if(typeof name === 'number'){
//name의 유형은 'number'
} else {
name
// name의 유형은 never.
// 인수의 인자값의 데이터 유형이 알맞게 들어왔다면 절대 동작하지 않을 코드
}
}
'타입스크립트' 카테고리의 다른 글
타입스크립트6. 객체지향 프로그래밍 (0) | 2022.05.16 |
---|---|
타입스크립트5. 함수의 call signatures (0) | 2022.05.15 |
타입스크립트3. 데이터 타입(1) (0) | 2022.05.15 |
댓글