我有一个翻译的json文件,我想在我的angular 4项目中使用。该文件也用于php,这就是为什么它需要存储为json而不是js模块。
它有这种结构
export interface IDictionary {
amsterdamCenter: number[];
amsterdamBounds: Array<number[]>;
prices: Price[];
cuisines: Object;
areas: Object;
}
关注https://hackernoon.com/import-json-into-typescript-8d465beded79我已将typings.d.ts更改为
/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
id: string;
}
declare module "*.json" {
const value: any;
export default value;
}
现在我的错误
import * as dictionary from './dictionary.json';
export const Dictionary: IDictionary = dictionary;
[ts]类型'typeof“ .json”'不能分配给'IDictionary'类型。属性'amsterdamCenter'缺少类型'typeof“ .json”'。
然而
export const Dictionary: any = dictionary;
确实有效。我希望有一个TS的咒语允许我使用我的接口
导入打字稿答案 0 :(得分:0)
您可以做的一件事是解析Json文件,例如:
import * as myJson from './my-json.json';
getMyJson(): Array<any> {
return JSON.parse(JSON.stringify(myJson))
}
您可以根据需要键入对特定模型/类的响应。
答案 1 :(得分:0)
@ simon-h尝试此代码。工作正常
import * as dictionary from './dictionary.json';
export const Dictionary: IDictionary = (<any>dictionary);
(或)
export const Dictionary: any = (<any>dictionary);
(或)
export const Dictionary: any = dictionary as any;