Leer tipos desde los valores en TypeScript
typeof eleva el tipo de un valor; ReturnType e InstanceType van más allá.
const defaults = {
theme: "default",
seconds: 60,
langs: ["ts", "go"],
};
type Defaults = typeof defaults;
type LangList = Defaults["langs"];
class Session {
constructor(public lang: string) {}
best(): number {
return 104;
}
}
type SessionType = InstanceType<typeof Session>;
type BestReturn = ReturnType<Session["best"]>;
function configure(overrides: Partial<Defaults>): Defaults {
return { ...defaults, ...overrides };
}
const session: SessionType = new Session("ts");
const best: BestReturn = session.best();
const langs: LangList = ["ts"];
console.log(configure({ seconds: 300 }).seconds, best, langs.length);
Cómo funciona
typeof valueen posición de tipo es el tipo del valor.InstanceType<typeof Class>es lo que producenew.- Así se mantiene una sola fuente de verdad: el valor.
Palabras clave y builtins usados aquí
BestReturnLangListPartialSessionTypeclassconstconstructorfunctionnumberpublicreturnstringtype
El intento, en números
- Líneas
- 27
- Caracteres a escribir
- 619
- Tokens
- 155
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 93 segundos.
Paso 2 de 4 en Leer tipos; paso 6 de 20 en Genéricos.