の既定のパラメータと同じ引数名を使用して:にTranspiledこのES6コードES6
const log =() => console.log('hi');
const parent = (log = log) => log();
parent();
:
var log = function log() {
return console.log('hi');
};
var parent = function parent() {
var log = arguments.length <= 0 || arguments[0] === undefined ? log : arguments[0];
return log();
};
parent();
はエラーを与える:
return log();
^
TypeError: log is not a function
問題は、この行です:
const parent = (log = log) => log();
引数名がデフォルトパラメータと同じであるためです。
これは動作します:
const log =() => console.log('hi');
const parent = (logNow = log) => logNow();
parent();
これはバベルのバグですか、この仕様自体に許可されていませんか?
巻上げは、この問題が発生します。 –