//만든거
type arr = 1 | 2 | 3;
type Limit<T> = T extends infer A ? A : never;
let temp: Limit<arr> = 2;
//만든거
type CustomPick<T, S extends keyof T> = {
[key in keyof S & keyof T]: S[key];
};
//이건 오픈소스 분석만
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
};
//이건 오픈소스 분석만
interface Arr<Parent> {
filter<Child extends Parent>(callback: (v: Parent) => v is Child): Child[];
}
const temp: Arr<number> = [1, 2, 3];
타입 가지고 노는 중
타입 분석시 내가 느낀점은
가장 중요한 것은 키워드의 이해라고 생각된다
extends abstract infer is keyof
하나하나 의미를 좀 정확히 알아야 타입 분석이 쉬워진다
차후 각각 하나씩 정리할 예정