Parece simple, esto funciona en javascript, pero estoy un poco confundido acerca del equivalente más cercano de mecanografiado. Estoy tratando de usar module.exports de la forma en que sé de javascript, pasando datos de la lista json entre 3 archivos.
en javascript, el archivo principal básicamente funciona así: - main.js:
const { mainnet: addresses } = require("./addresses"); const token0 = addresses.tokens.busd;
entonces, main.ts sería? (Creo que el problema principal está aquí):
import { mainnet } from "./addresses/index"; token0 = mainnet.tokens.busd;
luego escriba index.ts en ./address/index.ts (creo que esto funciona correctamente):
import tokensMainnet from './tokens-mainnet.json'; declare var module: any; // "allowSyntheticDefaultImports" = true module.exports = { mainnet: { tokens: tokensMainnet } };
y tokensmainnet.json
{ "busd": "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56", "wbnb": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" }
Puedo ver en los metadatos que está funcionando:
así que creo que el problema principal con la importación de este módulo en main.ts
He repasado algunas fuentes, como sin suerte https://www.typescriptlang.org/docs/handbook/modules.html
en mecanografiado
agregar
"resolveJsonModule":true
a paquete.json:
"Permite importar módulos con una extensión '.json', que es una práctica común en los proyectos de nodos. Esto incluye generar un tipo para la importación basado en la forma estática JSON". -https://www.typescriptlang.org/tsconfig#resolveJsonModule
así que agregue a main.ts:
import * as data from "./addresses/tokens-mainnet.json" //...program code... constructor(){ let tokenAddress = data console.log(tokenAddress.busd) }
:)