J'ai ce code:où l'écoulement travaille pour argument de la fonction déstructuré, mais pas pour l'argument non déstructuré
function myFunction({x}: {x?: number} = {}) {
console.log(x);
return 'foo';
}
function wrapper({x}: {x: number}) {
return myFunction({x});
}
function myFunction2({x}: {x?: number} = {}) {
console.log(x);
return 'foo';
}
function wrapper2(args: {x: number}) {
return myFunction2(args);
}
myFunction
et wrapper
font exactement la même chose que myFunction2
et wrapper2
, non? Mais flux pense qu'il ya une erreur dans la dernière copie (live demo):
16: return myFunction2(args);
^object type. This type is incompatible with the expected param type of
10: function myFunction2({x}: {x?: number} = {}) {
^object type
Est-ce un bug, ou suis-je manque quelque chose et les deux exemples ne sont pas équivalents?