TypeScript 迁移 : Simplest fix for JavaScript style const definitions generating errors?

标签 typescript

我正在尝试通过将 .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/

相关文章:

angular - 如何在 typescript 中声明和处理 float 类型?

typescript - Angular2 如何从父组件类访问子组件类?

javascript - 使用ngFor解析二维数组时在表格单元格中添加复选框

Angular io(4) *ngFor first and last

Typescript - 获取接口(interface)的所有实现

javascript - JQueryStatic 类型上不存在属性

javascript - 如何在 Promise 中仅返回解析类型?

javascript - 将数组内的数组展平

测试运行时 Angular 2 模板解析错误

javascript - 使用单选按钮查找所选值的对应 ID