È facile usare la versione dattiloscritta 2.9+. Quindi puoi importare facilmente i file JSON come descritto da @kentor .
Ma se è necessario utilizzare versioni precedenti:
Puoi accedere ai file JSON in un modo più TypeScript. Innanzitutto, assicurati che la nuova typings.d.tsposizione sia la stessa della includeproprietà nel tuo tsconfig.jsonfile.
Se non hai una proprietà include nel tuo tsconfig.jsonfile. Quindi la struttura delle cartelle dovrebbe essere così:
- app.ts
+ node_modules/
- package.json
- tsconfig.json
- typings.d.ts
Ma se hai una includeproprietà nel tuo tsconfig.json:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Quindi typings.d.tsdovresti essere nella srcdirectory come descritto nella includeproprietà
+ node_modules/
- package.json
- tsconfig.json
- src/
- app.ts
- typings.d.ts
Come in molte delle risposte, è possibile definire una dichiarazione globale per tutti i file JSON.
declare module '*.json' {
const value: any;
export default value;
}
ma preferisco una versione più tipizzata di questo. Ad esempio, supponiamo che tu abbia un file di configurazione del config.jsongenere:
{
"address": "127.0.0.1",
"port" : 8080
}
Quindi possiamo dichiarare un tipo specifico per esso:
declare module 'config.json' {
export const address: string;
export const port: number;
}
È facile importare nei tuoi file dattiloscritto:
import * as Config from 'config.json';
export class SomeClass {
public someMethod: void {
console.log(Config.address);
console.log(Config.port);
}
}
Ma in fase di compilazione, dovresti copiare manualmente i file JSON nella tua cartella dist. Aggiungo solo una proprietà di script alla mia package.jsonconfigurazione:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}