【问题标题】:Typescript error after updating from version 2.9.2 to 3.7.5从版本 2.9.2 更新到 3.7.5 后出现打字稿错误
【发布时间】:2020-06-02 10:41:24
【问题描述】:

我有一个使用 typescript 版本 2.9.2 的 Angular(版本 6)项目。

我正在迁移到 Angular 的最新版本 9。

迁移的一个步骤是将 typescript 版本更新到 3.7.5。

更新 typescript 后,我​​在其中一个库上遇到编译错误 - https://github.com/jf3096/json-typescript-mapper - 此库不再处于活动状态。

187 instance[key] = decoratorMetaData.customConverter.fromJson(json[decoratorMetaData.name || key]); ~~~~~~~~~~~~~ node_modules/json-typescript-mapper/index.ts:189:13 - 错误 TS2536:类型“字符串”不能用于索引类型“T”。

更新打字稿后有人遇到过类似的问题吗? 关于如何解决此问题的任何想法?

谢谢

【问题讨论】:

  • Angular 6 正式不支持 Typescript v3.7.5。需要进行一些额外的配置,以使其正常工作(如果有可能的话)
  • @boop_the_snoot 这个错误发生在我已经迁移到 angular 版本 9 之后。
  • 您是否正确执行了迁移步骤? Please take a look again on the upgrade guide
  • 我做到了。这与打字稿比角度更相关。

标签: angular typescript typescript-generics


【解决方案1】:

正如您在 cmets 中提到的,您已按照指南执行所有操作,您可以通过手动升级 TypeScript 版本来尝试以下步骤。

修改tsconfig.json文件添加:

{
  "compileOnSave": false,
  "compilerOptions": {
    // some props
  },
  "angularCompilerOptions": {
    "disableTypeScriptVersionCheck": true // <- ADD
  }
}

(可选)删除package-lock.jsonnode-modules 文件夹。

  • 再次npm i
  • 如果尚未完成,请添加 npm i -D typescript@3.7.5

src/polyfills.ts,最后添加:

// @ts-ignore
window.__importDefault = function (mod) {
    return mod && mod.__esModule ? mod : { default: mod };
};

现在通过创建构建继续测试您的应用程序

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2017-04-27
    • 2023-02-09
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多