TypeScriptで少しハマったのでメモ
↓のようなインタフェースがあったとして
interface Sample {
name : string;
age : number;
email : string;
address : string;
birthday: Date;
}
type Hoge = keyof Sample;
// -> name | age | email | adress | birthday
型がstring
のキーだけの一覧が欲しい!となったので以下のようなTypeを使いました。
type FilteredKeys<T, U> = {
[P in keyof T]: T[P] extends U ? P : never
}[keyof T];
type Hoge = FilteredKeys<Sample, string>;
// -> name | email | address
こんなことをしたい時点で少し無理やりな実装になってる可能性が高いですが
忘れないようにメモ