我如何使用。。TypeScript中循环的数量? //下面没有问题: 设a=[1,2,3,4,5]; 为了(让我举个例子){ document.write(“”+i);//1 2 3 4 5 } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //下面也没有问题 函数添加(…编号:编号[]):编号{ 设温度:数值=0; 对于(变量i:number=0;inumber.reduce((x,y)=>x+y,0);

我如何使用。。TypeScript中循环的数量? //下面没有问题: 设a=[1,2,3,4,5]; 为了(让我举个例子){ document.write(“”+i);//1 2 3 4 5 } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //下面也没有问题 函数添加(…编号:编号[]):编号{ 设温度:数值=0; 对于(变量i:number=0;inumber.reduce((x,y)=>x+y,0);,typescript,Typescript,我试图在TypeScript中使用新的“of”来表示循环。 但是,没有像我预期的那样工作。例如,在上一次尝试中,我得到了“NaN”值,而我预期得到14。 我做错了什么?for(…of…)语法生成数组的实际元素,而不是它们的索引。因此,正确的JavaScript语法很简单: 函数add(…number:number[]):number{ 设和=0; 用于(数量常数i){ 总和+=i; } 回报金额; } 当然,由于numbers是一个数组,因此ES6也允许您使用一个线性行来执行此操作: cons

我试图在TypeScript中使用新的“of”来表示循环。 但是,没有像我预期的那样工作。例如,在上一次尝试中,我得到了“NaN”值,而我预期得到14。 我做错了什么?

for(…of…)语法生成数组的实际元素,而不是它们的索引。因此,正确的JavaScript语法很简单:

函数add(…number:number[]):number{
设和=0;
用于(数量常数i){
总和+=i;
}
回报金额;
}
当然,由于
numbers
是一个数组,因此ES6也允许您使用一个线性行来执行此操作:

const add=(…number:number[])=>number.reduce((x,y)=>x+y,0);
事实上,就性能而言,后者可能更容易让VM进行优化,尽管VM可能在多次调用
add()
并确定为代码中的热点之前不会对其进行优化。当然,您决定采用哪一种方法取决于您是否有一个能够适应上述折叠的团队。

for(…of…)语法生成数组的实际元素,而不是它们的索引。因此,正确的JavaScript语法很简单:

函数add(…number:number[]):number{
设和=0;
用于(数量常数i){
总和+=i;
}
回报金额;
}
当然,由于
numbers
是一个数组,因此ES6也允许您使用一个线性行来执行此操作:

const add=(…number:number[])=>number.reduce((x,y)=>x+y,0);

事实上,就性能而言,后者可能更容易让VM进行优化,尽管VM可能在多次调用
add()
并确定为代码中的热点之前不会对其进行优化。当然,你的决定取决于你是否有一个对上述折叠感到满意的团队。

如果你有忘记的代码,你可以简单地将你的问题包含在问题中。请注意,TypeScript编译为JavaScript。它的编译方式取决于您给编译器的目标。查看图表,注意TypeScript不支持for..of循环的某些用法。这是新的。谢谢你的信息和提示,迈克。如果你有忘记的代码,你可以简单地将你的问题包含在问题中。请注意,TypeScript编译为JavaScript。它的编译方式取决于您给编译器的目标。查看图表,注意TypeScript不支持for..of循环的某些用法。这是新的。感谢您提供的信息和提示。对于TS,您必须确保键入定义源项,例如
numbers
,而不是for循环
i
中的元素,因为TS不允许这样做。对于TS,您必须确保键入定义源项,例如
numbers
,不是for循环
i
中的元素,因为TS不允许这样做。
//No issues in below:
let a = [1, 2, 3, 4, 5];

for (let i of a) {
    document.write('<br />' + i); //1 2 3 4 5
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//No issues in below either
function add(...numbers: number[]): number {
    let temp: number = 0;
    for (var i: number = 0; i < numbers.length; i++) {
        temp += numbers[i];
    }
    return temp;
}

let result: number = add(1,5,8); 
document.body.innerHTML = `Result = ${result}`; //Result = 14
// +++++++++++++++++++++++++++++++++++++++++++++++++

// Hmm! Undefined
function add(...numbers: number[]): number {
    let temp: number = 0;
    for (let i of numbers) {
        temp += numbers[i];
    }
    return temp;
}

let result: number = add(1,5,8); 
document.body.innerHTML = `Result = ${result}`; // Result = NaN