環境
Vue3 × Typescript × Element Plus
message
- この呼び出しに一致するオーバーロードはありません。
前回のオーバーロードにより、次のエラーが発生しました。ts(2769) - runtime-core.d.ts(962, 25): 前回のオーバーロードはここで宣言されています。
原因
- 外部のコンポーネントを使うときにおこりやすい?
- どこかしらの型が間違っている。
型定義元を見てみると、
// ...
export declare const inputNumberEmits: {
change: (prev: number | undefined, cur: number | undefined) => boolean;
blur: (e: FocusEvent) => boolean;
focus: (e: FocusEvent) => boolean;
input: (val: number | null | undefined) => boolean;
"update:modelValue": (val: number | undefined) => boolean;
};
// ...
となっており、input
イベントの引数はnumber|null|undefined
の三種類である。
// ...
const onChange = (value: number) => { ...
// ...
しかし、定義した関数はnumber
のみとなっていたために、エラーとなっていた。
解決
onChange
関数の引数を (value: number|null|undefined)
とすると、エラーが消えた。