1

我有一个基于 typescript 1.8.10 的 VSTS 扩展。我想将它升级到最新的 typescript 3.1.6。我可以通过发出 npm i typescript@3.1.6 --save-dev 来做到这一点。但是,这样做之后,我从 *.d.ts 文件中收到了许多错误。主要来自knockout.d.ts和node.d.ts。我在下面尝试过:

  • 手动更新类型定义
  • 重新安装所有节点模块

错误如下所示:

[15:45:28] 使用 tsc 版本 3.1.6 编译 TypeScript 文件

[15:45:37] [tsc] > 定义/敲除.d.ts(10,2): 错误 TS2411: 类型为 '(valueToWrite?: T, event?: string) => void' 的属性 'notifySubscribers' 是不可分配给字符串索引类型“KnockoutBindingHandler”。

[15:45:37] [tsc] > 定义/敲除.d.ts(20,2): 错误 TS2411: 类型为 '(a: any, b: any) => boolean' 的属性 'equalityComparer' 不可分配到字符串索引类型'KnockoutBindingHandler'。

[15:45:37] [tsc] > 定义/敲除.d.ts(25,5): 错误 TS2411: 属性 'indexOf' 类型为 '(searchElement: T, fromIndex?: number) => number' 不是可分配给字符串索引类型“KnockoutBindingHandler”。

[15:45:37] [tsc] > 定义/敲除.d.ts(26,5): 错误 TS2411: 类型为 '(start: number, end?: number) => T[]' 的属性'slice'不能分配给字符串索引类型“KnockoutBindingHandler”。

到目前为止似乎没有任何工作。感谢有人可以指导我。

谢谢你。

4

1 回答 1

0

所以我能够解决这个问题。

首先是“vss-web-extension-sdk”当时不支持 TS 3.0。

所以我不得不改用 TS 2.9.2。另一件事是我更改了所有以前的参考资料,例如;

///<reference path="../definitions/Q.d.ts" />

/// <reference type="Q" />

这些解决了大部分错误。

于 2019-01-28T04:17:09.067 回答