Created: 2024/01/15
【TypeScript】引数が必要な関数の型に引数のない関数を渡してもエラーにならない
問題点
- callbackの関数に、areaIdなどの引数のない関数を渡したとしてもエラーにならない..
export function onCreateAvatarPos(areaId: string, callback: (output: ApiType.CreateAvatarPosOutput) => void): void {
// 略
}
const callback = () => {}
onCreateAvatarPos(props.id, callback);// エラーになってくれない
原因(理由)
- この現象をsubstitutabilityというらしい
- 上記がエラーにならない理由を公式も言及している(正常な動作らしい)
- そもそもjavascriptって引数なくても実行できちゃう
- f12 developer toolで下記を実行してもたしかにエラーにならない
function aa(a) { console.log('z'); };
aa(); // zが出力される