En JavaScript tenemos un símbolo global en el objeto Symbol , como Symbol.iterator y Symbol.match .
Puedo asignar la propiedad borrando el tipo a any , sin embargo, TypeScript no lo reconoce.
// Define Symbol.hello (Symbol as any).hello = Symbol("hello"); // Try using it later: Symbol.hello; // TypeScript error: Property 'hello' does not exist on type 'SymbolConstructor'.ts(2339) ¿Cómo agrego mi propiedad a Symbol de una manera que haga feliz a TypeScript?
Puede declarar su propiedad en la interfaz de SymbolConstructor :
declare global { interface SymbolConstructor { readonly hello: symbol; } }Ahora puede definir su propiedad:
// Define Symbol.hello (Symbol as { hello: symbol }).hello = Symbol("hello"); // TypeScript is now happy: Symbol.hello;