본 포스팅은 Maximilian Schwarzmüller 님의 강의를 바탕으로 작성되었습니다.
Tuple
타입스크립트는 튜플 타입을 제공한다.
위와 같이 객체 타입을 각각 지정하여 array구문 안에 각 요소의 타입을 지정하면 튜플로 명시된다.
하지만, 안타깝게도 push에 대한 보호가 안된다. 대신 array의 길이에 대한 것과 해당 인덱스의 타입은 보호할 수 있다.
다음과 같이 push된 "admin"은 존재하는 것을 볼 수 있다.
enum
타입스크립트에만 있는 타입(자바스크립트에 없다).
기본적으로 enum 값이 0부터 시작하지만, 만약 수정하고 싶다면 등호(=)를 사용하여 변경할 수 있다.
또한 string 데이터로 명시할 수도 있다.
union
두개 이상의 타입을 명시하고 싶을 때 union 타입을 사용한다. union타입은 | 연산자를 사용하여 만든다.
유니언 타입을 사용하게 되는 경우에는 추가적인 런타임 타입 검사가 필요할 수 있다.
사용자 지정 타입
type 을 사용하여 사용자 지정 타입을 명시할 수 있다. 또한, 유니언 타입을 저장하는 것 말고도 복잡할 수 있는 객체 타입에도 별칠을 붙일 수 있다.
type User = { name: string, age: number }
function greet(user: User) {
console.log('Hi, I am'+ user.name);
}
function isOlder(user: User, checkAge: number) {
return checkAge > user.age;
}
return type
반환값의 타입을 명시할 수 있으며, 추가로 타입스크립트에는 void 타입이 존재한다.
그렇다면 javascript에 존재하는 undefined는 어떨까.
undefined는 무엇인가 필수적으로 반환한다고 타입스크립트가 이해한다. 즉, void를 리턴하는 함수에 undefined를 반환 값으로 명시하면 에러가 발생한다. 반환하는 것이 없는데 반환을 기대하므로. undefined를 사용하기 위해서는 return; 을 마지막에 사용해야한다.
Function
Callback function

addAndHandle 함수에서 callback함수를 호출한다. 해당 함수는 void를 반환하며 콜백 지옥에 빠지는 것을 예방한다. 그러나 return이 있더라도 오류가 나지 않는다.
unknown
unknown은 any와 마찬가지로 어떤 데이터 타입도 저장할 수 있다. 하지만, any의 경우 어떠한 데이터도 '가능' 하다를 뜻하지만 unknown은 어떠한 데이터도 '보장하지 않는다'를 뜻한다. 즉, 해당 데이터 타입을 명시하기 위해서는 꼭 타입 검사(if 문을 사용하여)를 해야만한다.
그러나! 가능하면! any와 unknown은 사용하지 말자. 가능하면 union 선에서 정리하자. 그럼에도 사용해야 한다면 unknown을 사용하자.
never
오류를 발생하는 코드가 있으면 해당 코드를 지닌 함수는 아무것도 반환할 수 없다. void를 반환하는 것과는 다르다. void의 경우 undefined를 반환했으나, 에러를 발생시키는 코드는 해당 코드를 아예 중단시키기 때문이다.
이런 경우 위의 generateError 함수와 같이 never 반환을 한다. 해당 타입을 명시하지 않아도 되지면, 코드의 직관성이 높아지며 개발자는 해당 코드를 보고 치명적인 코드임을 알 수 있다.
'TIL (Today I Learned) > Typescript' 카테고리의 다른 글
[TS] Typescript와 차세대 자바스크립트 (0) | 2023.01.19 |
---|---|
[TS] Typescript 컴파일러2 (0) | 2023.01.19 |
[TS] Typescript 컴파일러 (0) | 2023.01.19 |
[TS] TypeScript 기본 & 기본 타입 (0) | 2023.01.18 |
댓글