È 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.ts
posizione sia la stessa della include
proprietà nel tuo tsconfig.json
file.
Se non hai una proprietà include nel tuo tsconfig.json
file. Quindi la struttura delle cartelle dovrebbe essere così:
- app.ts
+ node_modules/
- package.json
- tsconfig.json
- typings.d.ts
Ma se hai una include
proprietà nel tuo tsconfig.json
:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Quindi typings.d.ts
dovresti essere nella src
directory come descritto nella include
proprietà
+ 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.json
genere:
{
"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.json
configurazione:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}