【发布时间】:2020-08-30 18:29:56
【问题描述】:
ES6 Proxy.apply 方法提供了一种使用没有“new”关键字的类的方法。
但在 TypeScript 上,它会给出错误“'typeof ClassName' 类型的值不可调用。您的意思是包含 'new' 吗?”。
有什么方法可以防止 TypeScript 错误?
这是一个简单的例子;
class ClassName {
constructor(anyThing?: any) {
if (anyThing) {
// Do something
}
}
}
// ES6 Proxy
const CustomName = new Proxy(ClassName, {
apply: (Target, _thisArg, argumentsList) => {
return new Target(...argumentsList);
}
});
// Test ---------
new ClassName("test"); // return ClassName { }
// No error
new CustomName("test"); // return ClassName { }
// Javascript: no error
// TypeScript: error => Value of type 'typeof ClassName' is not callable. Did you mean to include 'new'?
CustomName("test"); // return ClassName { }
【问题讨论】:
标签: typescript