Typcript 2.9+ sürümünü kullanmak kolaydır. Böylece, JSON dosyalarını @kentor tanımlanmış olarak kolayca içe aktarabilirsiniz .
Ancak daha eski sürümleri kullanmanız gerekiyorsa:
JSON dosyalarına daha TypeScript yoluyla erişebilirsiniz. Öncelikle, yeni typings.d.tskonumunuzun dosyanızdaki includemülk ile aynı olduğundan emin olun tsconfig.json.
tsconfig.jsonDosyanızda bir include özelliğiniz yoksa . O zaman klasör yapınız şöyle olmalıdır:
- app.ts
+ node_modules/
- package.json
- tsconfig.json
- typings.d.ts
Ama eğer bir includemülkünüz varsa tsconfig.json:
{
"compilerOptions": {
},
"exclude" : [
"node_modules",
"**/*spec.ts"
], "include" : [
"src/**/*"
]
}
Ardından, mülkiyet bölümünde açıklandığı gibi dizinde typings.d.tsolmalısınızsrcinclude
+ node_modules/
- package.json
- tsconfig.json
- src/
- app.ts
- typings.d.ts
Yanıtın çoğunda olduğu gibi, tüm JSON dosyalarınız için genel bir bildirim tanımlayabilirsiniz.
declare module '*.json' {
const value: any;
export default value;
}
ama bunun daha yazılı bir versiyonunu tercih ederim. Örneğin, şöyle bir yapılandırma dosyanız config.jsonolduğunu varsayalım:
{
"address": "127.0.0.1",
"port" : 8080
}
O zaman bunun için belirli bir tür bildirebiliriz:
declare module 'config.json' {
export const address: string;
export const port: number;
}
Typcript dosyalarınıza içe aktarmak kolaydır:
import * as Config from 'config.json';
export class SomeClass {
public someMethod: void {
console.log(Config.address);
console.log(Config.port);
}
}
Ancak derleme aşamasında, JSON dosyalarını dist klasörünüze manuel olarak kopyalamanız gerekir. package.jsonYapılandırmama bir komut dosyası özelliği ekledim:
{
"name" : "some project",
"scripts": {
"build": "rm -rf dist && tsc && cp src/config.json dist/"
}
}