Búsqueda de sitios web

pruebas unitarias - React Native con TypeScript: ¿Cómo configurar globals en setup.js?


Estoy construyendo una aplicación React Native con TypeScript.

Quiero usar jest-fetch-mock. En la documentación dice que se debe crear un archivo setup.js y añadir

global.fetch = require("jest-fetch-mock");

en ello. Hice eso. Pero obtengo el error:

[ts] Cannot compile namespaces when the '--isolatedModules' flag is provided.

Así que busqué en Google y descubrí que solo tengo que importar algo para arreglar esto (lo cual está bien, ya que de todos modos necesito importaciones para configurar NativeModules.ReactLocalization para usar la localización).

Entonces recibo el error:

[ts] Cannot find name 'global'.

Así que busqué un poco más en Google y encontré esta 'solución':

// Change to file to setup.ts and
const globalAny: any = global;

Pero lanza el mismo error y ahora estoy atascado. ¿Cómo puedo configurar una variable global?

Respuesta #1

¿Por qué TypeScript compila archivos .js?

Si tienes un archivo setup.ts: intenta agregar declare var global: any; antes de global.fetch=....

Sin embargo, te sugiero que uses tipos para tu proyecto:

npm i -D @types/node @types/jest

Entonces, extender el objeto global se verá así:

declare module NodeJS {
  interface Global {
    fetch: GlobalFetch
  }
}

global.fetch = require('jest-fetch-mock');