É fácil usar a versão datilografada 2.9+. Assim, você pode importar facilmente arquivos JSON como o @kentor descrito .
Mas se você precisar usar versões mais antigas:
Você pode acessar arquivos JSON de maneira mais TypeScript. Primeiro, verifique se o seu novo typings.d.ts
local é igual ao da include
propriedade no seu tsconfig.json
arquivo.
Se você não possui uma propriedade include no seu tsconfig.json
arquivo. Então sua estrutura de pastas deve ser assim:
- app.ts
+ node_modules/
- package.json
- tsconfig.json
- typings.d.ts
Mas se você tem uma include
propriedade no seu tsconfig.json
:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Então você typings.d.ts
deve estar no src
diretório conforme descrito na include
propriedade
+ node_modules/
- package.json
- tsconfig.json
- src/
- app.ts
- typings.d.ts
Como em muitas respostas, você pode definir uma declaração global para todos os seus arquivos JSON.
declare module '*.json' {
const value: any;
export default value;
}
mas eu prefiro uma versão mais digitada disso. Por exemplo, digamos que você tenha um arquivo de configuração config.json
assim:
{
"address": "127.0.0.1",
"port" : 8080
}
Em seguida, podemos declarar um tipo específico para ele:
declare module 'config.json' {
export const address: string;
export const port: number;
}
É fácil importar nos seus arquivos datilografados:
import * as Config from 'config.json';
export class SomeClass {
public someMethod: void {
console.log(Config.address);
console.log(Config.port);
}
}
Mas na fase de compilação, você deve copiar os arquivos JSON para a pasta dist manualmente. Acabei de adicionar uma propriedade de script à minha package.json
configuração:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}