Es fácil de usar la versión de mecanografiado 2.9+. Por lo tanto, puede importar fácilmente archivos JSON como @kentor describe .
Pero si necesita usar versiones anteriores:
Puede acceder a los archivos JSON de manera más TypeScript. Primero, asegúrese de que su nueva typings.d.tsubicación sea la misma que con la includepropiedad en su tsconfig.jsonarchivo.
Si no tiene una propiedad de inclusión en su tsconfig.jsonarchivo. Entonces la estructura de su carpeta debería ser así:
- app.ts
+ node_modules/
- package.json
- tsconfig.json
- typings.d.ts
Pero si tiene una includepropiedad en su tsconfig.json:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Entonces typings.d.tsdebería estar en el srcdirectorio como se describe en la includepropiedad
+ node_modules/
- package.json
- tsconfig.json
- src/
- app.ts
- typings.d.ts
Como en muchas de las respuestas, puede definir una declaración global para todos sus archivos JSON.
declare module '*.json' {
const value: any;
export default value;
}
pero prefiero una versión más tipada de esto. Por ejemplo, supongamos que tiene un archivo de configuración config.jsoncomo ese:
{
"address": "127.0.0.1",
"port" : 8080
}
Entonces podemos declarar un tipo específico para ello:
declare module 'config.json' {
export const address: string;
export const port: number;
}
Es fácil importar en sus archivos de mecanografiado:
import * as Config from 'config.json';
export class SomeClass {
public someMethod: void {
console.log(Config.address);
console.log(Config.port);
}
}
Pero en la fase de compilación, debe copiar los archivos JSON a su carpeta dist manualmente. Solo agrego una propiedad de script a mi package.jsonconfiguración:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}