Cộng đồng Hỏi & Đáp của Inflearn
map함수 작성관
Đã giải quyết
Viết
·
650
0
안녕하세요 강의 잘 듣고 있습니다.
function map<T,K>(arr:T[],callback:(item:any)=>K){
let result = [];
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i]))
}
return result
}
이렇게 map함수를 정의하였는데요
map(['hi','hello'],(it)=>parseInt(it))
이게 가능하면 안되니까
function map<T>(arr:T[],callback:(item:any)=>T){
let result = [];
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i]))
}
return result
}
이게 map함수 올바른 작성 양식 아닌가요??
Quiz
Mục đích chính của việc sử dụng generic trong TypeScript là gì?
Tăng tốc độ chạy code
Giảm lỗi runtime
Đảm bảo an toàn kiểu và linh hoạt khi biên dịch
Cải thiện khả năng tương thích thư viện JavaScript
Câu trả lời 2
1
0
안녕하세요 이지수님 이정환입니다.
자바스크립트의 Map 메서드는 기존 배열 요소 타입과 다른 타입의 요소들로 이루어진 배열로 변환하는 기능도 제공합니다. 따라서 다음과 같은 동작이 가능해야 합니다.
const arr = [1, 2, 3];
arr.map((it) => it.toString());
// ["1", "2", "3"]위 코드는 number 타입의 요소들이 담긴 배열을 string 타입의 요소들이 담긴 배열로 변환하는 예 입니다.
따라서 Map 메서드를 우리가 직접 구현할 때에도 위와 동일하게 동작할 수 있어야 하기 때문에
타입 변수를 2개(T, U) 사용해 반환 배열 요소의 타입이 원래 배열 요소의 타입과 달라질 수 있도록 설정해주어야 합니다.




