타입이 문자열인 경우 아래와 같이 선언한다.
let str: string = 'hi';
타입 표기(Type Annotation) :
:
를 이용하여 타입을 정의하는 방식
타입이 숫자이면 아래와 같이 선언한다.
let num: number = 10;
타입이 진위 값인 경우에는 아래와 같이 선언한다.
let isLoggedIn: boolean = false;
타입이 배열인 경우, 다음 2가지 방법을 통해 선언할 수 있다.
// 기본 형태
let arr: number[] = [1,2,3];
// 또는 아래와 같이 제네릭을 사용할 수 있다.
let arr: Array<number> = [1,2,3];
튜플은 배열의 길이가 고정되고, 각 요소의 타입이 지정되어 있는 배열 형식을 의미한다.
let arr: [string, number] = ['hi', 10];
만약 정의하지 않은 타입이나 인덱스로 접근할 경우, 오류가 발생한다.
arr[1].concat('!'); // Error, 'number' does not have 'concat'
arr[5] = 'hello'; // Error, Property '5' does not exist on type '[string, number]'.
이넘은 특정 값(상수)들의 집합을 의미한다.
enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers.Capt;
이넘은 인덱스 번호로도 접근할 수 있다.
enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers[0];
만약 원한다면, 이넘의 인덱스를 사용자 편의로 변경하여 사용할 수 있다.
enum Avengers { Capt = 2, IronMan, Thor }
let hero: Avengers = Avengers[2]; // Capt
let hero: Avengers = Avengers[4]; // Thor
모든 타입에 대해서 허용한다는 의미를 가진다.
기존에 자바스크립트로 구현되어 있는 웹 서비스 코드에 타입스크립트를 점진적으로 적용할 때 활용하면 좋은 타입이다.
let str: any = 'Hi';
let num: any = 10;
let arr: any = ['a', 2, true];
반환 값이 없는 함수의 반환 타입이다.
아래와 같이 return
이 없거나, return
이 있어도 반환하는 값이 없으면 함수의 반환 타입을 void
로 지정한다.
// return이 없는 경우
function printSomething(): void {
console.log('sth');
}
// return은 있지만 반환하는 값이 없는 경우
function returnNothing(): void {
return;
}
함수의 끝에 절대 도달하지 않는다는 의미를 지닌 타입이다.
// 이 함수는 절대 함수의 끝까지 실행되지 않는다는 의미
function neverEnd(): never {
while (true) {
}
}