(Typescript)将json导入Angular 4项目

(Typescript)将json导入Angular 4项目,json,angular,typescript,Json,Angular,Typescript,我有一个json翻译文件,我想在angular 4项目中使用。该文件也在php中使用,这就是为什么需要将其存储为json而不是js模块的原因 它有这样的结构 export interface IDictionary { amsterdamCenter: number[]; amsterdamBounds: Array<number[]>; prices: Price[]; cuisines: Object; areas: Object; }

我有一个json翻译文件,我想在angular 4项目中使用。该文件也在php中使用,这就是为什么需要将其存储为json而不是js模块的原因

它有这样的结构

export interface IDictionary {
    amsterdamCenter: number[];
    amsterdamBounds: Array<number[]>;
    prices: Price[];
    cuisines: Object;
    areas: Object;
}
现在我有一个错误

import * as dictionary from './dictionary.json';

export const Dictionary: IDictionary = dictionary;
[ts]类型“typeof”.json”不可分配给类型“IDictionary”。类型“typeof”.json”中缺少属性“amsterdamCenter”

然而

export const Dictionary: any = dictionary;

确实有效。我希望有一个TS咒语,允许我使用接口导入typescript

您可以做的一件事是解析Json文件,如下所示:

import * as myJson from './my-json.json';

getMyJson(): Array<any> {
 return JSON.parse(JSON.stringify(myJson))
}
import*作为myJson从“/myJson.json”导入;
getMyJson():数组{
返回JSON.parse(JSON.stringify(myJson))
}
如果愿意,可以键入对特定模型/类的响应

编辑:实际上只是导入和分配,如果需要,请复制:

import * as settingsMenu from './settings-menu.json';
const array = settingsMenu;
// OPTIONAL: copy object
const menu: Array<BdbMap> = new Array();
Object.assign(menu, array);
import*作为“./settings menu.json”中的设置菜单;
常量数组=设置菜单;
//可选:复制对象
常量菜单:数组=新数组();
分配(菜单、数组);

您可以做的一件事是解析Json文件,如下所示:

import * as myJson from './my-json.json';

getMyJson(): Array<any> {
 return JSON.parse(JSON.stringify(myJson))
}
import*作为myJson从“/myJson.json”导入;
getMyJson():数组{
返回JSON.parse(JSON.stringify(myJson))
}
如果愿意,可以键入对特定模型/类的响应

编辑:实际上只是导入和分配,如果需要,请复制:

import * as settingsMenu from './settings-menu.json';
const array = settingsMenu;
// OPTIONAL: copy object
const menu: Array<BdbMap> = new Array();
Object.assign(menu, array);
import*作为“./settings menu.json”中的设置菜单;
常量数组=设置菜单;
//可选:复制对象
常量菜单:数组=新数组();
分配(菜单、数组);

@simon-h请尝试此代码。工作正常

import * as dictionary from './dictionary.json';

export const Dictionary: IDictionary = (<any>dictionary);

@simon-h请尝试此代码。工作正常

import * as dictionary from './dictionary.json';

export const Dictionary: IDictionary = (<any>dictionary);

您使用的是Typescript 2+版本吗?您是否在类型定义文件中添加了模块声明?您是否也在使用webpack?在链接示例中,对
any
进行了“强制转换”,因此:
export const Dictionary:IDictionary=Dictionary as any@AlekseyL。是的,我想我知道这就是问题所在。通过键入.d.ts似乎是非常低级的文件ad,所以我不想将IDictionary放在那里,我稍后会检查,但我认为您可以将import从“/dictionary.json”更改为
import dictionary并且不需要额外的强制转换(因为它已经被定义为
any
)您使用的是Typescript 2+版本吗?您是否在类型定义文件中添加了模块声明?您是否也在使用webpack?在链接示例中,对
any
进行了“强制转换”,因此:
export const Dictionary:IDictionary=Dictionary as any@AlekseyL。是的,我想我知道这就是问题所在。通过键入.d.ts似乎是非常低级的文件ad,所以我不想将IDictionary放在那里,我稍后会检查,但我认为您可以将import从“/dictionary.json”更改为
import dictionary并且不需要额外的铸造(因为它已经被定义为
any