1. 조건을 만족하는 함수 타입 구현
getSellersFromProducts 함수
- 매개변수로 받은 Product 배열로부터, seller 객체만 추출해 새로운 배열로 반환
- 반환값을 명시적으로 설정
interface Product { id: number; name: string; price: number; seller: { id: number; name: string; company: string; }; } function getSellersFromProducts(products: any): any { return products.map((product) => product.seller); }
function getSellersFromProducts(products: Product[]): Product["seller"][] {
return products.map((product) => product.seller);
}
2. 조건을 만족하는 타입 정의
PartialProduct 타입
- Product 타입의 모든 프로퍼티를 다 선택적 프로퍼티로 바꾼 타입
ReadonlyProduct 타입
- Product 타입의 모든 프로퍼티를 다 읽기 전용 프로퍼티로 바꾼 타입
ReadonltPartialProduct 타입
- Product 타입의 모든 프로퍼티를 다 선택적, 읽기 전용 프로퍼티로 바꾼 타입
interface Product { id: number; name: string; price: number; seller: { id: number; name: string; company: string; }; } type PartialProduct = any; type ReadonlyProduct = any; type ReadonlyPartialProduct = any;
type PartialProduct = {
[key in keyof Product]?: Product[key];
};
type ReadonlyProduct = {
readonly [key in keyof Product]: Product[key];
};
type ReadonlyPartialProduct = {
readonly [key in keyof Product]?: Product[key];
};
3. 조건을 만족하는 타입 구현
Score 타입
- 점수를 나타내기 위한 문자열 타입
- 형식: ${0부터 10까지의 정수}-${0부터 10까지의 정수}
type Score = any;
type N = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
type Score = `${N}-${N}`;'TIL' 카테고리의 다른 글
| [TS] infer (타입 추론) (0) | 2025.11.05 |
|---|---|
| [TS] 분산적인 조건부 타입 (0) | 2025.11.05 |
| [TS] 템플릿 리터럴 타입 (0) | 2025.11.05 |
| [TS] 맵드 타입 (0) | 2025.11.05 |
| [TS] keyof와 typeof 연산자 (0) | 2025.11.05 |
