Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular / Typescript – 由于模块定义,无法转换导入的’* .json’文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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已被类型断言强制进入静状态.

大佬总结

以上是大佬教程为你收集整理的Angular / Typescript – 由于模块定义,无法转换导入的’* .json’文件全部内容,希望文章能够帮你解决Angular / Typescript – 由于模块定义,无法转换导入的’* .json’文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: