我正在尝试通过将 .js
文件重命名为 .ts
将一个中等规模的项目从 JavaScript 迁移到 TypeScript。该项目很大,我从小例子开始。 JavaScript 代码已经是类似类的了,我选择了一个没有依赖项的简单类 Token
类作为开始。下面显示了一个简化版本,其底线使用 tsc 1.8 生成错误,提示 “属性 'INVALID_TYPE' 在类型 () => any 上不存在。”
function Token() {
this.source = null;
this.type = null; // token type of the token
this.line = null; // line=1..n of the 1st character
this.column = null; // beginning of the line at which it occurs, 0..n-1
return this;
}
Token.INVALID_TYPE = 0;
我了解如何通过将 function Token
转换为 class Token
,使 INVALID_TYPE
成为 Token 类的静态成员
,但是在近 10k 行代码中执行此操作变得相当复杂。我正在寻找一种更渐进的方法。消除错误的一种更简单的方法是将最后一行更改为:
(<any>Token).INVALID_TYPE = 0;
是否有更好的快速修复方法来暂时消除此类 TypeScript 错误消息?
最佳答案
一个快速的修复方法是将函数声明重写为函数表达式(确保没有提升丢失的问题!)并将其转换为 any
类型,然后您可以添加任何你想要的 Prop 。
const Token = <any> function() {
// ...
}
关于TypeScript 迁移 : Simplest fix for JavaScript style const definitions generating errors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39563469/