Size: a a a

Compiler Development

2020 January 23

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
Слишком тонко, чтобы соответствовать "Definitely not a TypeScript" нужно просто "no GMO". 😉
Generic MetaObjects ?
источник

АУ

Анна Удовиченко in Compiler Development
Alexander Tchitchigin
Слишком тонко, чтобы соответствовать "Definitely not a TypeScript" нужно просто "no GMO". 😉
А поясни пожалуйста шуточку для валенков 🙈
источник

AT

Alexander Tchitchigin in Compiler Development
Анна Удовиченко
А поясни пожалуйста шуточку для валенков 🙈
Ну, ты же знаешь про ГМО? А про асбест?
источник

АУ

Анна Удовиченко in Compiler Development
Alexander Tchitchigin
Ну, ты же знаешь про ГМО? А про асбест?
это да
источник

АУ

Анна Удовиченко in Compiler Development
Но про Definitely not чот непонятно
источник

YS

Yaroslav Schekin in Compiler Development
Про шуточку: https://xkcd.com/641/
источник

AT

Alexander Tchitchigin in Compiler Development
Ну вот поэтому про асбест - слишком obscure, а про ГМО - как раз на уровне TpeScript. 😊
источник

AT

Alexander Tchitchigin in Compiler Development
Анна Удовиченко
Но про Definitely not чот непонятно
Это как в Magica был персонаж, который с ходу сказал "меня зовут Влад, но я совершенно определённо, вне всяких сомнений, никаким образом не вампир". И мы все такие "само собой! мы сразу же тебе верим!" 😂
источник

AS

Aleksey Shipilev in Compiler Development
Alexander Tchitchigin
Слишком тонко, чтобы соответствовать "Definitely not a TypeScript" нужно просто "no GMO". 😉
Я уже где-то в докладе про модели памяти шутил, что все компиляторы как один без ГМО (глобального мега-оптимизатора), что на практике ограничивает эксплуатацию тёмных мест модели.
источник

AT

Alexander Tchitchigin in Compiler Development
Aleksey Shipilev
Я уже где-то в докладе про модели памяти шутил, что все компиляторы как один без ГМО (глобального мега-оптимизатора), что на практике ограничивает эксплуатацию тёмных мест модели.
А как же MLton??! 😂
источник

AT

Alexander Tchitchigin in Compiler Development
Кстати, серьёзный вопрос. Как называется и что означает в TypeScript:
[P in T]: U

?
И какие там конструкции разрешены вместо T?
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Кстати, серьёзный вопрос. Как называется и что означает в TypeScript:
[P in T]: U

?
И какие там конструкции разрешены вместо T?
Mapped type
источник

AK

Andrei Kurosh in Compiler Development
Вместо T должен быть тип, перечисляющий ключи, например:

type Foo = “foo” | “bar”

Также можно использовать keyof, чтобы получить список ключей уже описанного типа/интерфейса
источник

AT

Alexander Tchitchigin in Compiler Development
Примерно понятно, читаю доку. Спасибо.
источник

AK

Andrei Kurosh in Compiler Development
Там есть еще всякие хитрости, снимающие и проставляющие дополнительные свойства поля (optional, readonly)

https://github.com/Microsoft/TypeScript/blob/4ff71ecb98ccbd882feb1738b0c6f1cc93c2ea66/src/lib/es5.d.ts#L1401-L1420
источник

AT

Alexander Tchitchigin in Compiler Development
Да, в доке есть про это, спасибо.
источник

M

Mary in Compiler Development
@true_grue  а не было желание перевести вики на английский? не так много информации по написанию компиляторов, думаю было бы полезно
источник

TS

Timur Safin in Compiler Development
кстати да
источник

AT

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

А

Андрей in Compiler Development
это какой язык?
источник