функции-стрелке, второй раз, непосредственно перед каждым аргументом и возвращаемым значением?
let myAdd: (baseValue: number, increment: number) => number = function (
x: number,
y: number
): number {
return x + y;
};
https://www.typescriptlang.org/docs/handbook/functions.html#writing-the-function-type
Формально ты и не должен, во многих случаях там вывод типов работает. Если напрягают большие названия типов, то можешь им давать названия, чтобы они короче были. Если тип уже существует и у него длинное название,то используй as, например MyVeryLongType as MyType ; А должен прописывать, чтобы подсказывать тайпскрипту, что конкретно ты ожидаешь. Когда явно декларируешь свои намерения, ему проще подсказать, где ты обосрался, потому что вывод типов не всегда отрабатывает так, как ожидаешь.
т.e можно один раз прописать в стрелке или у каждого аргумента? Делать и то и то нет смысла?
let myAdd = function ( x: number, y: number ): number { return x + y; }; можешь так оставить, вывод типов по идее должен отработать. Но лучше явно прописывать стараться.
Как проверить, отработал вывод или нет? Напиши так, как я показала в примере, и наведи стрелку мыши на myAdd , зажав ctrl . Если там показывается правильное описание типа, значит всё ок.
Точнее, ты можешь даже так оставить let myAdd = function ( x: number, y: number ) { return x + y; }; То, что возвращается, автоматически должно вывестись
Т.e то, что мы прописываем в стрелке идентично тому, что мы прописываем перед каждым аргументом?
В данном примере да, потому что у тебя число с числом складывается, ts выведет тип. Если пример более сложный, то придётся указывать. Вывод типов иногда отрабатывает, а иногда нет.
Понятно, спасибо
Обсуждают сегодня