Angular / Typescript – 由于模块定义,无法转换导入的’* .json
发布时间:2020-12-17 17:52:01 所属栏目:安全 来源:网络整理
导读:在我的Angular / Typescript2.2项目中,出于开发目的,我不时导入* .json文件作为我的组件中的测试数据. 为了允许将.json文件作为模块导入,我将以下内容添加到typings.d.ts中 declare module '*.json' { const value: any; export default value;} 当然,我可以
在我的Angular / Typescript2.2项目中,出于开发目的,我不时导入* .json文件作为我的组件中的测试数据.
为了允许将.json文件作为模块导入,我将以下内容添加到typings.d.ts中 declare module '*.json' { const value: any; export default value; } 当然,我可以将这些文件的内容分配给类型为any的字段,但我想将它们分配给类型为我的一个接口的字段.请注意,我希望模块定义中的值对所有类型保持开放.我不想将它硬编码到1个接口. import {ProcessMilestone} from '../../../domain'; import * as milestones from './test.json'; export class MilestoneSearchComponent implements OnInit { data: ProcessMilestone[]; ngOnInit(): void { this.data = <ProcessMilestone[]> milestones; } } 这给了我以下错误:
很明显,由于’* .json’的当前模块定义,无法进行转换.有可能调整这个以便这可能吗?我不知道可能性. 只有极少工作的解决方案是可行的.如果没有,我将改为从后端获取数据. 解决方法
无论你在运行时做什么工作?如果是这样,您可以始终强制TypeScript通过以下任何方式允许类型断言:
this.data = <ProcessMilestone[]> <any> milestones; 这是我能想到的最小努力.当然,如果事实证明你的JSON文件不包含正确类型的对象,它将在运行时爆炸而没有来自TypeScript的警告,TypeScript已被类型断言强制进入静默状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |