ํจ์์์ ํ์ ์ด์ฉํ๊ธฐ: ๊ธฐ๋ณธ
โ๏ธ ์์ 1
// JavaScript ๐ฉ
function jsAdd(num1, num2) {
return num1 + num2;
}
// TypeScript โจ
function add(num1: number, num2: number): number {
return num1 + num2;
}
โ๏ธ ์์ 2
// JavaScript ๐ฉ
function jsFetchNum(id) {
// code ...
// code ...
// code ...
return new Promise((resolve, reject) => {
resolve(100);
});
}
// TypeScript โจ
function fetchNum(id: string): Promise<number> {
// code ...
// code ...
// code ...
return new Promise((resolve, reject) => {
resolve(100);
});
}
ํจ์ parameter ํ์
: spread
, default
, optional
โ๏ธ optional parameter
// Optional parameter
function printName(firstName: string, lastName?: string) {
console.log(firstName);
console.log(lastName); // undefined
}
printName("Steve", "Jobs");
printName("april");
printName("ving9");
โ๏ธ Default parameter
// Default parameter
function printMessage(message: string = "default message") {
console.log(message);
}
printMessage();
โ๏ธ Rest parameter
// Rest parameter
// ์ธ์๋ฅผ ์ซ์ ํ์
์ ๋ฐฐ์ด๋ก ๋ฐ์์จ๋ค number[]
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b);
}
console.log(addNumbers(1, 2));
console.log(addNumbers(1, 2, 3, 4));
console.log(addNumbers(1, 2, 3, 4, 5, 0));
interface ์ฌ์ฉํด๋ณด๊ธฐ
interface
๋ ํด๋์ค ๋๋ ๊ฐ์ฒด๋ฅผ ์ํ ํ์ ์ ์ง์ ํ ๋ ์ฌ์ฉ๋๋ ๋ฌธ๋ฒ