Typescript 在类的TS中使用开放式参数
在下面的示例中,我希望传递给方法Typescript 在类的TS中使用开放式参数,typescript,Typescript,在下面的示例中,我希望传递给方法test的数组长度匹配。 有人能解释为什么它不能按预期工作吗 class Beef { public id: number; } class Steak { public run() { const testBeefs = this.getBeef(); console.log('Should be 5, got '+ testBeefs.length); const re
test
的数组长度匹配。
有人能解释为什么它不能按预期工作吗
class Beef
{
public id: number;
}
class Steak
{
public run()
{
const testBeefs = this.getBeef();
console.log('Should be 5, got '+ testBeefs.length);
const result = this.test(testBeefs);
return result;
}
private getBeef():Beef[]
{
const output: Beef[] = [];
for (var i = 1; i <= 5; i++)
{
const newBeef = new Beef();
newBeef.id = i;
output.push(newBeef);
}
return output;
}
private test(...beefs: Beef[]): number
{
console.log('Should be 5, got '+ beefs.length);
var output = 0;
for (var i = 0; i < beefs.length; i++)
output += beefs[i].id;
return output;
}
}
等级牛肉
{
公众id:号码;
}
上等牛排
{
公营
{
const testBeefs=this.getBeef();
log('应该是5,got'+testBeefs.length);
const result=this.test(testBeefs);
返回结果;
}
私有getBeef():牛肉[]
{
常量输出:Beef[]=[];
对于(var i=1;itest
不需要数组,它需要的是Beef
类型的未指定数量的参数
你可以这样称呼它:
const result = this.test(...testBeefs)
或者将签名更改为仅使用数组作为第一个参数:
private test(beefs: Beef[]): number