馃敟 TYPE MANIPULATION, OPERADOR TYPEOF

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.