Посмотрел тут видео с конференции BUILD
https://youtu.be/Pu92QXdf2t0
Андрес Хейлсберг рассказывает про TypeScript и его систему типов.
Фактически представили типы в виде множеств значений, где отдельное значение тоже является валидным типом.
Прикрутили операции над множествами — пересечение, объединение, отображения. Сделали уловные операторы для отображений.
Кроме того они фактически прикрутили доказательство теорем к системе типов, которое учитывает control flow в программе. И работает система доказательств в обе стороны — для проверки корректности и для вывода типов.
Честно говоря это настолько круто, что я прям офигел. В существующих языках я такого не видел еще. Даже хаскелл с его наворотами в системе типов выглядит как академическая игрушка. А тут реально работающая вещь, которая еще и голый js умеет проверять на корректность.
Я так понимаю алгоритмы из компилятора TS начинают проникать в компилятор C#, в частности control-flow и escape analysis.
К сожалению эта вся крутость в TS работает в compile time.
Как вы думаете можно ли использовать эти данные о типах чтобы сделать код на TS\JS более быстрым в runtime? Может кто слышал про такие наработки?