1. ์ ๋ค๋ฆญ ํ์ ๋ช ์ ์ฃผ์์ฌํญ
์ ๋ค๋ฆญ์ ํ์ ์ ๋ช ์ํ ๋๋ ๋ชจ๋ ํ์ํ ์ ๋ค๋ฆญ ํ์ ์ ๋ช ์ํ๊ฑฐ๋ ๋ฐ๋๋ก ์๋ฌด ๊ฒ๋ ๋ช ์ํด์๋ ์ ๋๋ค.
์ฆ, ์ด๋ ๊ฒ ์ฐ๊ฑฐ๋ ( ํ์ ๋ช ์)
function map<T, U>(array: T[], f: (item: T) => U): U[] {
let result = [];
for (let i = 0; i < array.length; i++) {
result[i] = f(array[i]);
}
return result;
}
console.log(map<string, boolean>(["a", "b", "c", "d"], (_) => _ === "a")); //[ false, false, true ]
์ด๋ ๊ฒ ์จ์ผ ํ๋ค. (ํ์ ์ถ๋ก )
function map<T, U>(array: T[], f: (item: T) => U): U[] {
let result = [];
for (let i = 0; i < array.length; i++) {
result[i] = f(array[i]);
}
return result;
}
console.log(map(["a", "b", "c", "d"], (_) => _ === "a")); //[ false, false, true ]
2. ํ์ ์คํฌ๋ฆฝํธ๋ ์ ๋ค๋ฆญ ํจ์๋ก ์ ๋ฌํ ์ธ์์ ์ ๋ณด๋ฅผ ์ด์ฉํด ์ ๋ค๋ฆญ์ ๊ตฌ์ฒด ํ์ ์ ์ถ๋ก ํ๋ฏ๋ก ๋๋ก๋ ์๋์ ๊ฐ์ ์ํฉ์ด ํผ์ณ์ง ์ ์๋ค.
let promise = new Promise((resolve) => resolve(45));
promise.then((result) => result * 4);
~~~~~~
์์์ ํ์ ์คํฌ๋ฆฝํธ๊ฐ result๋ฅผ {}๋ก ์ถ๋ก ํ ๊ฒ์
ํ์ ์คํฌ๋ฆฝํธ์ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ ์คํฌ๋ฆฝํธ๋ ์ ๋ค๋ฆญ ํจ์์ ์ธ์์๋ง ์์งํ์ฌ ์ ๋ค๋ฆญ ํ์ ์ ์ถ๋ก ํ๋๋ฐ,
์ธ์๊ฐ ์๋ฌด ๊ฒ๋ ์์ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก T๋ฅผ {}๋ก ๊ฐ์ฃผํ ๊ฒ์ด๋ค.
Promise์ ์ ๋ค๋ฆญ ํ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ช ์ํด์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
let promise = new Promise<number>((resolve) => resolve(45));
promise.then((result) => result * 4);