타입스크립트로 변수나 함수와 같은 자바스크립트 코드에 타입을 정의할 수 있습니다.
기본타입에는 크게 12가지가 있습니다.
let str: string = 'h1';
let num: number = 10; // Number
let isLoggedIn: boolean = false; // Boolean
// Object
// Array
let arr: number[] = [1,2,3]; number 타입을 가지는 배열
let arr: Array<number> = [1,2,3]; // 제네릭을 사용한 문법
// Tuple
let arr: [string,number] = ['h1',10]; // 튜플은 배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식을 의미합니다.
// 만약 정의하지 않은 타입, 인덱스로 접근할 경우 오류가 납니다.
// Enum : 특정 값(상수)들의 집합을 의미합니다.
enum Avengers { Capt, Ironman, Thor }
let hero: Avengers = Avengers.Capt;
let hero: Avengers = Avengers[0]; // 인덱스 번호로도 접근 가능합니다.
// 만약 원한다면 이넘의 인덱스를 사용자가 편의로 변경하여 사용 할 수도 있습니다.
enum Avengers { Capt = 2, Ironman, Thor }
let hero: Avengers = Avengers[2]; // Capt
let hero: Avengers = Avengers[4]; // Thor
// Any : 모든 타입에 대해서 허용한다는 의미입니다. 기존에 자바스크립트로 구현되있는 서비스 코드에 점진적으로 타입스크립트를 적용할때 활용하면 좋은 타입 입니다.
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];
// Void: 변수에는 undefined 와 null만 할당하고, 함수에는 반환값을 설정할 수 없는 타입입니다.
let unuseful: void = undefined;
function notuse(): void {
console.log('sth');
}
// Never: 함수에 끝에 절대 도달하지 않는다는 의미를 지닌 타입입니다.
function neverEnd(): never {
while (true) {
}
}