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

Привет Подскажите Почему первый вариант работает А второй вариант не работает //работает const someFunction:<T>(x:T)=>T =

function<T>(x:T):T{
return x;
};

//то же самое, но стрелочной функцией, не работает
const someFunction:<T>(x:T)=>T = <T>(x:T):T=>x;

Почему ?? Хотелось бы знать

10 ответов

22 просмотра

Если заданы типы в переменной, зачем задавать их в сигнатуре?

Кузьма-Макаров Автор вопроса

не совсем понимаю вопрос, сигнатура имеете ввиду дженерики ? Цель дженериков ведь сделать динамичные типы, когда вызываешь тогда назначаешь какой тип

дженерики иногда конфликтуют с jsx. тут именно этот случай. задать констрейнт в значении, всё будет прекрасно работать const someFunction: (<T>(x:T) => T) = <T extends unknown>(x:T):T=>x;

я имею ввиду если написать вот так const someFunction: <T>(x:T) => T = (x) => x; ничего не изменится. в сигнатуре (уже в значении функции) не обязательно писать типы если всё детально расписано в типе переменной которой всё присваивается

Кузьма-Макаров Автор вопроса

аа, вы это имели ввиду, да, вы правы, но вообще щас хочу максимально понять тайпскрипт, ее особенности

Кузьма-Макаров Автор вопроса

вот тут не поняла почему так заработало <T extends unknown>(x:T):T=>x; Как он может конфликтовать с jsx Каком разделе документации прочитать об этом ? Contstains of generics ?

не помню задокументированно ли это, но если посмотреть почему именно ругается тс, там можно найти ответ на то что тут виноват жсх

Кузьма-Макаров Автор вопроса

щас дебажу, кажется обнаружу почему

Кузьма-Макаров Автор вопроса

Спасибо)

Кузьма-Макаров Автор вопроса

Я поняла Черт возьми <T> компилятор понимает это как тег, а не как дженерик <T extends unknown> начинает нормально понимать что это тег Поняла теперь

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта