我有以下课程
export class TechnicalContactInfo {
constructor(){
this.Communication = [];
}
/** @description ContactFunctionCode */PER01;
/** @description ContactName */PER02;
/** @description Communication */Communication: Communication[];
}
当我试图创建它的对象时,如下所示
var TechnicalContactInfo:TechnicalContactInfo = new TechnicalContactInfo();
它给我的错误如下
[ts]不能使用' new'表达式类型缺少调用或 构建签名。
有人可以帮我找到原因吗?
答案 0 :(得分:0)
错误是由于您将变量命名为与类相同的事实。如果我们看一下如何将类编译为let object = ClassName(forPrimaryKey: primaryKey)
,那么为什么类声明和变量声明会导致冲突可能会更加明显:
ES5
您无法定义var TechnicalContactInfo = /** @class */ (function () {
function TechnicalContactInfo() {
}
return TechnicalContactInfo;
}());
var TechnicalContactInfo = new TechnicalContactInfo();
因为已经存在一个名为TechnicalContactInfo
的变量来保存类构造函数。虽然对于ES6我们可以使用类语法同样适用,变量和类共享当前的命名范围,如果定义变量和具有相同名称的类,您将遇到问题。