var
키워드는 절대 쓰지 말자!
: babel로 최신 버전을 낮은 버전으로 변환 가능하므로 우리는 항상 good practice만 사용한다! → let
, const
Primitive Type : number
, string
, boolean
, bigint
, symbol
, null
, undefined
Object Type : function
, array
...
// number
const num: number = -6;
// string
const str: string = 'hello';
// boolean
const boal: boolean = false;
// undefined
let name: undefined; // 💩
// null
let person: null; // 💩
// unknown 💩
let notSure: unknown = 0;
// any 💩
let anything: any = 0;
// void
function print(): void {
console.log('hello');
return; // 리턴값이 없을 때
}
// never
function throwError(message: string): never {
// message -> server (log)
throw new Error(message);
while (true) {}
} // 절대 리턴되지 않는 경우
// object
let obj: object; // 💩
function add(num1: number, num2: number): number {
return num1 + num2;
}
function fetchNum(id: string): Promise<number> {
// code ...
// code ...
// code ...
return new Promise((resolve, reject) => {
resolve(100);
});
}
// Optional parameter
function printName(firstName: string, lastName?: string) {
console.log(firstName);
console.log(lastName); // undefined
}
printName('Steve', 'Jobs');
printName('Sean');
// Default parameter
function printMessage(message: string = 'default message') {
console.log(message);
}
printMessage();
// Rest parameter
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b);
}
console.log(addNumbers(1, 2));
console.log(addNumbers(1, 2, 3, 4));