169 похожих чатов

Почему мы должны дважды прописывать тип функции, один раз в

функции-стрелке, второй раз, непосредственно перед каждым аргументом и возвращаемым значением?
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

8 ответов

12 просмотров

Формально ты и не должен, во многих случаях там вывод типов работает. Если напрягают большие названия типов, то можешь им давать названия, чтобы они короче были. Если тип уже существует и у него длинное название,то используй as, например MyVeryLongType as MyType ; А должен прописывать, чтобы подсказывать тайпскрипту, что конкретно ты ожидаешь. Когда явно декларируешь свои намерения, ему проще подсказать, где ты обосрался, потому что вывод типов не всегда отрабатывает так, как ожидаешь.

Artem- Автор вопроса

т.e можно один раз прописать в стрелке или у каждого аргумента? Делать и то и то нет смысла?

let myAdd = function ( x: number, y: number ): number { return x + y; }; можешь так оставить, вывод типов по идее должен отработать. Но лучше явно прописывать стараться.

Как проверить, отработал вывод или нет? Напиши так, как я показала в примере, и наведи стрелку мыши на myAdd , зажав ctrl . Если там показывается правильное описание типа, значит всё ок.

Точнее, ты можешь даже так оставить let myAdd = function ( x: number, y: number ) { return x + y; }; То, что возвращается, автоматически должно вывестись

Artem- Автор вопроса

Т.e то, что мы прописываем в стрелке идентично тому, что мы прописываем перед каждым аргументом?

В данном примере да, потому что у тебя число с числом складывается, ts выведет тип. Если пример более сложный, то придётся указывать. Вывод типов иногда отрабатывает, а иногда нет.

Artem- Автор вопроса

Понятно, спасибо

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта