Web Devlopment/TypeScript
#6 Generic
키모형
2025. 3. 26. 23:04
반응형
함수 매개변수 Generic
// Generic
function getSize<T>(arr: T[]): number {
return arr.length;
}
const arr1 = [1,2,3];
getSize<number>(arr1); // 3
const arr2 = ["a","b","c"];
getSize<string>(arr2); // 3
const arr3 = [false, true, false];
getSize<boolean>(arr3); // 3
const arr4 = [{}, {},{name: "Tom"}];
getSize<object>(arr4); // 3
interface Generic
// 인터페이스 맴버변수 타입을 generic으로 선언하는 예
interface Mobile<T> {
name: string;
price: number;
option: T; // string, object... 입력가능
}
const m1: Mobile<object> = {
name: "s21",
price: 1000,
option: {
color: "red",
coupon: false,
},
};
const m2: Mobile<{color: string; coupon: boolean}> = {
name: "s21",
price: 1000,
option: {
color: "red",
coupon: false,
},
};
const m3: Mobile<string> = {
name: "s20",
price: 900,
option: "good",
};
// Generic
interface User {
name: string;
age: number;
}
interface Car {
name: string;
color: string;
}
interface Book {
price: number;
}
const user: User = {name: "a", age:10};
const car : Car = {name:"bmw", color:"red"};
const book : Book = {price: 3000};
// 함수에 전달되는 객체를 Generic으로 전달
function showName<T extends {name: string}>(data: T): string {
return data.name;
}
showName(user);
showName(car);
// showName(book);
반응형