Size: a a a

2020 March 16

E

Evgen in Frontend UA
Eugene Obrezkov
null\NaN\Infinity может в рантайме уже прилететь
А Exclude в  этом случае можно сделать? Сам не пробовал - просто интересуюсь? Или это все равно все делается через if?
источник

EO

Eugene Obrezkov in Frontend UA
Evgen
А Exclude в  этом случае можно сделать? Сам не пробовал - просто интересуюсь? Или это все равно все делается через if?
не совсем понял
источник

E

Evgen in Frontend UA
Eugene Obrezkov
не совсем понял
Я уже посмотрел - нет таких типов как NaN Infinity :(
источник

DB

Dima Bildin in Frontend UA
Evgen
Я уже посмотрел - нет таких типов как NaN Infinity :(
Так это number, ts же не может знать в рантайме, что ты 4 поделил на 0
источник

E

Evgen in Frontend UA
Dima Bildin
Так это number, ts же не может знать в рантайме, что ты 4 поделил на 0
Ну в рантайме он и не узнает, что какого-то свойства нет у объекта
источник

DB

Dima Bildin in Frontend UA
То про форму объекта, а это про значение
источник

E

Evgen in Frontend UA
Dima Bildin
То про форму объекта, а это про значение
Могу так сделать:
type myString = "one" | "two";

const a: myString = "one"


Но, не могу сделать так:
type myNumber = NaN | Infinity;

const b: myNumber = Infinity;
источник

E

Evgen in Frontend UA
Или могу, но не знаю как
источник

DB

Dima Bildin in Frontend UA
А зачем? Это не поможет «исключить» эти значения из принимаемых
источник

EO

Eugene Obrezkov in Frontend UA
Evgen
Могу так сделать:
type myString = "one" | "two";

const a: myString = "one"


Но, не могу сделать так:
type myNumber = NaN | Infinity;

const b: myNumber = Infinity;
вся информация о типах в ТС стрипается на этапе компиляции и не реализовывается в рантайме
источник

E

Evgen in Frontend UA
Eugene Obrezkov
вся информация о типах в ТС стрипается на этапе компиляции и не реализовывается в рантайме
Это я понимаю
источник

EO

Eugene Obrezkov in Frontend UA
например, в других языках, чуть получше, типы могут быть реализованы как в статике, так и в динамике

в случае с ТС, к сожалению, вся его информация о типах служит только на этапе компиляции, после - "шо маэмо, то маэмо"
источник

E

Evgen in Frontend UA
Eugene Obrezkov
например, в других языках, чуть получше, типы могут быть реализованы как в статике, так и в динамике

в случае с ТС, к сожалению, вся его информация о типах служит только на этапе компиляции, после - "шо маэмо, то маэмо"
Этот этап и интересует
источник

ЕЛ

Евгений Лабутин in Frontend UA
Eugene Obrezkov
например, в других языках, чуть получше, типы могут быть реализованы как в статике, так и в динамике

в случае с ТС, к сожалению, вся его информация о типах служит только на этапе компиляции, после - "шо маэмо, то маэмо"
Ни в одном языке нету типов в райнтайме ) зато есть рефлексия нормальная из которой можно вытащить типы )
источник

EO

Eugene Obrezkov in Frontend UA
Evgen
Этот этап и интересует
да там особо и нечего рассказывать

есть язык с типами, компилятор может их использовать на этапе семантического анализа, чтобы проверить что то, что ты от него хочешь - реализуемо. Также, компилятор может использовать эту информацию о типах на этапе кодогенерации в целевую платформу. Т.е. они могут реализовать проверку типов в рантайме.
источник

EO

Eugene Obrezkov in Frontend UA
Евгений Лабутин
Ни в одном языке нету типов в райнтайме ) зато есть рефлексия нормальная из которой можно вытащить типы )
источник

VS

V7v S6k in Frontend UA
Евгений Лабутин
Ни в одном языке нету типов в райнтайме ) зато есть рефлексия нормальная из которой можно вытащить типы )
Є мови, які можуть передбачити проблеми в рантаймі на етапі компіляції. Elm, наприклад.
источник

EO

Eugene Obrezkov in Frontend UA
V7v S6k
Є мови, які можуть передбачити проблеми в рантаймі на етапі компіляції. Elm, наприклад.
+
источник

EO

Eugene Obrezkov in Frontend UA
этим как раз занимаются SMT-solvers (проверил, да)
источник

E

Evgen in Frontend UA
А это разве не то, о чем написал @labeg - getClass().getDeclaredField() - это ж вроде и есть рефлексия?
источник