JavaScript / TypeScript (1)
*// JavaScript*
function jsAdd**(**num1, num2**)** **{**
return num1 + num2;
**}**
*// TypeScript*
function tsAdd**(**num1: number, num2: number**)** **{**
return num1 + num2;
**}**
JavaScript / TypeScript (2)
*// JavaScript*
function getchNum**(**id**)** **{**
// code..
return new Promise((resolve, reject) => {
resolve(100);
});
**}**
*// TypeScript*
function fetchNum**(**id: string**)**: Promise<number> **{**
// code..
return new Promise((resolve, reject) => {
resolve**(**100**)**;
});
**}**
Optional parameter (선택적 매개변수)
? : 인자가 올 수도 안 올 수도 있다.
function printName(firstName: string, lastName?: string) {
console.log(firstName);
console.log(lastName);
**}**
printName('ellie', 'heetae');
printName('Steve'); *// 타입 생략 가능*
printName('Anna', undefined);
| : 둘 중의 하나의 타입의 인자가 와야 한다.
function printName(firstName: string, lastName: string | undefined) {
console.log(firstName);
console.log(lastName);
**}**
printName('ellie', 'heetae');
printName('Steve', undefined); *// 둘 중의 하나의 타입을 선언해야 한다.*
printName('Anna', undefined);
Default parameter
function printMessage(message: string = 'default message') {
console.log(message);
}
printMessage();
Rest parameter (전개 파라미터) → 요소들을 가져옴
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => {
return a + b;
});
}
console.log(addNumbers(1, 2));
console.log(addNumbers(1, 2, 3, 4));
console.log(addNumbers(1, 2, 3, 4, 5, 0));