JavaScript tiene ya incluido el operador typeof
.
console.log(typeof "Hola Mundo"); // -> string
TypeScript agrega al operador typeof
mayor contexto para asignar un tipo a una variable o propiedad.
let s = "hola mundo";
let n: typeof s; // <- ahora n es tipo string
Esto no es muy 煤til para tipos b谩sicos, pero combinado con otros operadores, se puede utilizar typeof
para expresar distintos patrones. Por ejemplo, el tipo ReturnType
utiliza internamente typeof
para asignar el tipo que retorna una funci贸n.
type P = (c: unknown) => boolean;
type K = ReturnType<P>; // <- el tipo de K es boolean
Si intentamos utilizar ReturnType
usando el nombre de una funci贸n el compilador generar谩 un error.
function H() {
return "hola mundo";
}
type F = ReturnType<H>; // <- esto no esta permitido
Limitaciones
TypeScript limita intencionalmente los tipos de expresiones que se pueden utilizar con typeof
.
Espec铆ficamente, solo se permite utilizar typeof
en identificadores (por ejemplo nombres de variables) en sus propiedades. Esto evite confusiones al momento de escribir el c贸digo.