let str: string = 'hi';
let num: number = 10;
let isLoggedIn: boolean = false;
let arr: number[] = [1,2,3];
또는let arr: Array<number> = [1,2,3];
let arr: [string, number] = ['hi', 10];
enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers.Capt;
// 그냥 { } 안의 요소가 값(상수) 자체이다
enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers[0]; // Capt
// 인덱스 번호로 접근 가능
enum Avengers { Capt = 2, IronMan, Thor }
let hero: Avengers = Avengers[2]; // Capt
let hero: Avengers = Avengers[4]; // Thor
// Capt = 2에서 2는 값이 아니라 인덱스이므로 Thor는 4가 됨
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];
let unuseful: void = undefined;
function notuse(): void {
console.log('sth');
}
function neverEnd(): never {
while (true) {
}
}
function sum(a: number, b: number): number {
return a + b;
}
함수의 반환 값에 타입을 정하지 않을 때는 void라도 사용
자바스크립트는 정의된 매개변수의 갯수 만큼 인자를 넘기지 않아도 되지만 타입스크립트는 무조건 맞춰서 넘겨야 하며 undefined나 null이라도 넘겨야 한다. 정의된 매개변수 값만 받을 수 있고 추가나 부족할 시 에러 발생
function sum(a: number, b: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // error, too few parameters
만약 JS 처럼 쓰고 싶다면 (= 정의된 매개변수와 상관없이 쓰고 싶다면) ?
사용
function sum(a: number, b?: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // 10
매개변수를 디폴트 값으로 설정해줄 수도 있음
function sum(a: number, b = '100'): number {
return a + b;
}
sum(10, undefined); // 110
sum(10, 20, 30); // error, too many parameters
sum(10); // 110