Если я определяю интерфейс для такой функции
interface IMyFn {
(a: number, b: number) : number
}
Я знаю, что могу создать переменную/константу, которая реализует эту функцию, и a и b будут иметь правильный тип.
const fn1: IMyFn = (a, b) => {
return a + b;
}
Но как я могу объявить, что функция должна реализовывать интерфейс?
// declare fn2: IMyFn???
function fn2 (a, b) {
return a + b;
}
В этом случае a и b не печатаются.
Я знаю, что могу сделать это:
function fn2 (a:number, b:number) : number {
return a + b;
}
И типы будут совпадать, если я передам fn2. Но идея ввода функции заключается в том, чтобы не повторять информацию об интерфейсе.