我正在尝试重载TypeScript Class
的构造函数constructor(a: T[])
constructor(...a: T[]) {
a.forEach(e => {
//do something with e
});
}
为什么编译器会抱怨上述内容?以及如何解决它的任何想法?
答案 0 :(得分:3)
提供的代码段不是类。假设它实际上是在课堂上包装的。这应该正常工作(也在运行时):
class A<T> {
constructor(a: T[]); // first overload
constructor(...a: T[]); // second overload
constructor(a) { // implementation (should implement all overloads)
a = arguments.length === 1 ? a : Array.prototype.slice.call(arguments);
a.forEach(e => {
//do something with e
console.log(e);
});
}
}
var strings = new A<string>(['a']);
var numbers = new A<number>(1, 2, 4);
在Handbook中阅读更多内容。