La guía paso a paso o código que verás en este post es la resolución más rápida y efectiva que hallamos a tu duda o dilema.
Solución:
Dentro de una .d.ts
archivo de definición
type MyGlobalFunctionType = (name: string) => void
Si trabaja en el navegador, agrega miembros al contexto de la ventana del navegador:
interface Window
myGlobalFunction: MyGlobalFunctionType
La misma idea para NodeJS:
declare module NodeJS
interface Global
myGlobalFunction: MyGlobalFunctionType
Ahora declara la variable raíz (que en realidad vivirá en la ventana o global)
declare const myGlobalFunction: MyGlobalFunctionType;
Luego en forma regular .ts
archivo, pero importado como efecto secundario, en realidad lo implementa:
global/* or window */.myGlobalFunction = function (name: string)
console.log("Hey !", name);
;
Y finalmente utilícelo en otra parte de la base de código, ya sea con:
global/* or window */.myGlobalFunction("Kevin");
myGlobalFunction("Kevin");
globalEste es el futuro.
Primero, los archivos TypeScript tienen dos tipos de scopes
alcance global
Si su archivo no tiene ninguna import
o export
líneaeste archivo se ejecutaría en alcance global que todas las declaraciones en él son visibles fuera de este archivo.
Así que crearíamos variables globales como esta:
// xx.d.ts
declare var age: number
// or
// xx.ts
// with or without declare keyword
var age: number
// other.ts
globalThis.age = 18 // no error
Toda la magia viene de
var
. Reemplazarvar
conlet
oconst
no funcionará
alcance del módulo
Si su archivo tiene alguna import
o export
líneaeste archivo se ejecutaría dentro de su propio ámbito que necesitamos extender globalmente mediante la combinación de declaraciones.
// xx[.d].ts
declare global
var age: number;
// other.ts
globalThis.age = 18 // no error
Puede ver más sobre el módulo en documentos oficiales
Así es como lo he arreglado:
Pasos:
- Declarado un espacio de nombres global, por ejemplo, custom.d.ts como se muestra a continuación:
declare global
namespace NodeJS
interface Global
Config:
export default global;
- Mapee el archivo creado anteriormente en “tsconfig.json” como se muestra a continuación:
"typeRoots": ["src/types/custom.d.ts" ]
- Obtenga la variable global creada anteriormente en cualquiera de los archivos de la siguiente manera:
console.log(global.config)
Nota:
-
versión mecanografiada: “3.0.1”.
-
En mi caso, el requisito era configurar la variable global antes de iniciar la aplicación y la variable debería acceder a través de los objetos dependientes para que podamos obtener las propiedades de configuración requeridas.
¡Espero que esto ayude!
Gracias
Te mostramos las comentarios y valoraciones de los usuarios
Si crees que te ha resultado de utilidad este post, sería de mucha ayuda si lo compartieras con el resto programadores y nos ayudes a difundir nuestro contenido.