(Typescript)将json导入Angular 4项目

时间:2018-05-20 06:15:06

标签: json angular typescript

我有一个翻译的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的咒语允许我使用我的接口

导入打字稿

2 个答案:

答案 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;