Size: a a a

Compiler Development

2020 January 23

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Очередной вопрос.
interface InferableComponentEnhancerWithProps<TInjectedProps, TNeedsProps> {
   <P extends Shared<TInjectedProps, P>>(
       component: ComponentClass<P>
   ): ComponentClass<Omit<P, keyof Shared<TInjectedProps, P>> & TNeedsProps> & { WrappedComponent: ComponentClass<P> }
}
Вот эта фигня в угловых скобках перед круглыми скобками - это вообще что???
это объявление генерика
источник

AT

Alexander Tchitchigin in Compiler Development
По-прежнему TypeScript.
источник

А

Андрей in Compiler Development
а почему это в разработке компиляторов?
источник

AT

Alexander Tchitchigin in Compiler Development
Потому что мне нужно это парсить! 🤦‍♀️
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
это объявление генерика
Что за генерик такой без имени, а сразу в угловых скобках? Так везде можно или что?
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Что за генерик такой без имени, а сразу в угловых скобках? Так везде можно или что?
interface Foo {
   <T>(arg: A): T;
}
источник

AK

Andrei Kurosh in Compiler Development
у именованной функции было бы Foo<T>(a, b), а у безымянной все то же самое, только без имени - поэтому получается <T>(a, b)
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
у именованной функции было бы Foo<T>(a, b), а у безымянной все то же самое, только без имени - поэтому получается <T>(a, b)
WAT??? 🙈
источник

AT

Alexander Tchitchigin in Compiler Development
Нихрена не понимаю, ну да ладно.
источник

AT

Alexander Tchitchigin in Compiler Development
В каких местах в TS можно такое безымянное писать?
источник

AK

Andrei Kurosh in Compiler Development
везде, где может быть тип
источник

AT

Alexander Tchitchigin in Compiler Development
Это тип анонимной функции, что ли?
источник

AT

Alexander Tchitchigin in Compiler Development
Анонимной генерик-функции?
источник

AK

Andrei Kurosh in Compiler Development
ну почти )
источник

AT

Alexander Tchitchigin in Compiler Development
Чем дальше в TypeScript - тем проще и проще! 🤦‍♀️
источник

AK

Andrei Kurosh in Compiler Development
в TS можно описать в интерфейсе не только поля-методы объекта, но и сигнатуры вызова его самого (если объект является функцией)
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
в TS можно описать в интерфейсе не только поля-методы объекта, но и сигнатуры вызова его самого (если объект является функцией)
Так это только в интерфейсе можно такое написать или "везде, где может быть тип"?
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Так это только в интерфейсе можно такое написать или "везде, где может быть тип"?
Везде
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
Везде
ОК, спасибо большое.
источник

PS

Peter Sovietov in Compiler Development
Mary
@true_grue  а не было желание перевести вики на английский? не так много информации по написанию компиляторов, думаю было бы полезно
Я помню, что когда только попал в чат, идею компиляторных wiki-обзоров мои собеседники восприняли скептически. Мол, есть же awesome-compilers и проч.
Приятно видеть теперь, что уже в некотором виде возникают запросы на английский перевод :)
Правда, я сам пока что хотел бы доработать wiki (много накопилось материалов), а не заниматься переводом.
источник