Не могу понять ошибку здесь:
Property 'MathFun' is missing in type '(x?: number, y?: number) => number' but required in type 'Func'.(2741) input.tsx(3, 5): 'MathFun' is declared here.
interface Func {
MathFun:(a:number,b:number) => number
};
const plus:Func = (x:number=30,y:number=40):number => x+y;
кто-нибудь поможет мне понять? как правильно объявить interface
для функции?
Вы можете создать интерфейс функции, опустив имя функции и заменив =>
на :
(текущие документы и немного более четкое объяснение в старые документы):
interface Func {
(a: number, b: number): number;
}
const plus: Func = (x: number = 30, y: number = 40): number => x + y;
Созданный вами интерфейс является допустимым кодом, но он предназначен для объекта со свойством функции:
interface FuncObject {
mathFun: (a: number, b: number) => number;
}
const plusObj: FuncObject = {
mathFun: (x: number = 30, y: number = 40): number => x + y,
};