Saltar al contenido

Crear una variable global en TypeScript

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. Reemplazar var con let o const 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:

  1. 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;
  1. Mapee el archivo creado anteriormente en “tsconfig.json” como se muestra a continuación:
"typeRoots": ["src/types/custom.d.ts" ]
  1. Obtenga la variable global creada anteriormente en cualquiera de los archivos de la siguiente manera:
console.log(global.config)

Nota:

  1. versión mecanografiada: “3.0.1”.

  2. 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *