【问题标题】:Up-to-date typings (like lib.dom.d.ts) for older TypeScript compiler旧 TypeScript 编译器的最新类型(如 lib.dom.d.ts)
【发布时间】:2018-09-23 00:47:18
【问题描述】:

Angular 6 强制最大 TypeScript 版本为 2.9.2。

但是,由于此 TS 版本中的 lib.dom.d.ts 已过时,我想使用 TypeScript 3.0.3 中的 lib.dom.d.ts 来解决我现在面临的问题。

是否可以在 TS 2.9.2 项目中使用来自 TS 3.0.3 的 lib.dom.d.ts 而不会弄乱node_modules(在那里手动替换文件)?

或者作为一种选择,是否有包含最新 lib.dom.d.ts@types 软件包专门用于与较旧的 TS 编译器一起使用?

【问题讨论】:

  • 如何去那个特定的定义文件并用较新的版本替换它而不抽出整个 TypeScript 版本?
  • 为什么不使用 typescript 3.0.3?
  • @rhavelka:因为你得到:ERROR in The Angular Compiler requires TypeScript >=2.7.2 and <2.10.0 but 3.0.3 was found instead.
  • @Microsmsm:你的意思是在node_modules 中这样做吗?是的,这是最后的手段,我只是在寻找 TS 可能拥有的任何其他便于维护的选项。
  • 你试过"lib": ["es2017", "dom"]tsconfig.json吗?

标签: angular typescript


【解决方案1】:

您可以将tsconfig.json 中的lib 编译器选项设置为您想要的TypeScript 2.9 的lib 文件列表(可能是一个空列表),然后将您想要的TypeScript 3.0 中的lib.*.d.ts 文件复制到您的项目中,确保删除 <reference> 指令,这样它们就不会意外拉入 TypeScript 2.9 lib 文件。希望您能找到适合您的组合,直到 Angular 7 发布并支持 TypeScript 3.0。如果您遇到无法解决的具体问题,请更新问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2022-11-21
    • 2017-11-21
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多