function sum(a: number, b: number) : number{
return a+b;
}
let str: string = 'hi';
: 를 이용해서 자바스크립트 코드에 타입을 정의하는 방식을 타입 표기라고 함.
let num: number = 10;
let isLoggedIn: boolean = false;
let obj: object = {name: 'NAME', age:29};
obj={A: 'A', B: 'B'};
❗️객체를 object 타입으로 정의하는 경우 타입스크립트를 사용한 목적이 애매해질 수 있음.
(타입스크립트는 타입 검사에 엄격한 편임)
interface IUser {
name: string,
age : number
}
let obj: IUser = { name: 'NAME', age: 29 };
type UserType = {
name: string,
age : number
}
let obj: UserType = { name: 'NAME', age: 29 };
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은 인덱스 번호로도 접근가능함.
enum Avengers {
Capt,
IronMan,
Thor
}
let hero: Avengers = Avengers[0];
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];
function printSomething(): void {
console.log('sth');
}
function returnNothing(): void {
return;
}
// 이 함수는 절대 함수의 끝까지 실행되지 않는다는 의미
function loopForever(): never {
while (true) {
// ..
}
}
function neverEnd(): never {
throw new Error('unexpected');
}