'arguments' 对象不能在 ES3 和 ES5 的箭头函数中引用。考虑使用标准函数表达式

The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression

目前正在构建示例白板项目并遇到打字稿问题

var format = (formatString, ...params: any[]): string => {
    var i = 0;

    while (/%s/.test(formatString)) {
        formatString = formatString.replace('%s', arguments[++i])  --> Error at (arguments)

    }
    return formatString;
};

我检查了堆栈溢出的类似问题,但没有得到具体答案

您混淆了 JS 和打字稿中剩余参数功能的可用性。

事实上 arguments 对象用于 ES3 和 ES5 中参数数量可变的函数不应该让你在打字稿中使用它。

对于打字稿中参数数量可变的函数,您应该使用rest parameters。 Typescript 编译器会将其编译为:

var format = (formatString: string, ...params: any[]): string => {
    var i = 0;

    while (/%s/.test(formatString)) {
        formatString = formatString.replace('%s', params[i++]);

    }
    return formatString;
};

Playground Link