Tipos mapeados en TypeScript
Construir un tipo nuevo recorriendo las claves de otro.
interface Settings {
theme: string;
volume: number;
}
type Nullable<T> = { [K in keyof T]: T[K] | null };
type Getters<T> = {
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};
type MaybeSettings = Nullable<Settings>;
type SettingGetters = Getters<Settings>;
const blank: MaybeSettings = { theme: null, volume: null };
Cómo funciona
[K in keyof T]itera cada propiedad.- El tipo del valor puede transformarse mientras se mapea.
ascon un literal de plantilla renombra las claves.
Palabras clave y builtins usados aquí
MaybeSettingsasconstinterfacenullnumberstringtype
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 335
- Tokens
- 101
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 55 segundos.
Paso 1 de 3 en Tipos mapeados; paso 4 de 12 en Programación a nivel de tipos.