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.ts
ubicación sea la misma que con la include
propiedad en su tsconfig.json
archivo.
Si no tiene una propiedad de inclusión en su tsconfig.json
archivo. 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 include
propiedad en su tsconfig.json
:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Entonces typings.d.ts
debería estar en el src
directorio como se describe en la include
propiedad
+ 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.json
como 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.json
configuración:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}