typescript - Använda Pick för att hämta alla nycklar av en viss typ
Finns det ett sätt att använda Pick<T, K> för att extrahera alla nycklar av en viss typ?
Exempel :
type MyObject = {
a: string;
b: number;
c: string;
d: boolean;
}
Jag vill extrahera alla string-typer, så slutlig typ kommer att vara:
type NewType = {
a: string;
c: string;
}
Svar #1
Först behöver du extrahera alla nycklar som har string-värdestyper:
type StringKeys<T> = { [P in keyof T]: T[P] extends string ? P : never }[keyof T]
type NewType = Pick<MyObject, StringKeys<MyObject>>; // { a: string; c: string; }
Lekplats
