使用命名变量A创建A类对象时出错

时间:2018-05-14 10:13:25

标签: typescript

我有以下课程

export class TechnicalContactInfo {
    constructor(){
       this.Communication = [];
    }
/** @description ContactFunctionCode */PER01;
/** @description ContactName */PER02;
/** @description Communication */Communication: Communication[];
}

当我试图创建它的对象时,如下所示

var TechnicalContactInfo:TechnicalContactInfo = new TechnicalContactInfo();

它给我的错误如下

  

[ts]不能使用' new'表达式类型缺少调用或   构建签名。

有人可以帮我找到原因吗?

1 个答案:

答案 0 :(得分:0)

错误是由于您将变量命名为与类相同的事实。如果我们看一下如何将类编译为let object = ClassName(forPrimaryKey: primaryKey) ,那么为什么类声明和变量声明会导致冲突可能会更加明显:

ES5

您无法定义var TechnicalContactInfo = /** @class */ (function () { function TechnicalContactInfo() { } return TechnicalContactInfo; }()); var TechnicalContactInfo = new TechnicalContactInfo(); 因为已经存在一个名为TechnicalContactInfo的变量来保存类构造函数。虽然对于ES6我们可以使用类语法同样适用,变量和类共享当前的命名范围,如果定义变量和具有相同名称的类,您将遇到问题。