было присвоить только от 4 до 10
If Val < 4, Val >10
Нет, это уже не про типы. Но если взять что то типо io ts или runtypes, то там есть brand
в теории можно наверно накостылять, через темплейт литералы, но зачем такое понадобилось?
Скажем, если есть класс, то в конструкторе можно валидировать данные. Тогда у тебя есть гарантия, что в поле email всегда будет валидное мыло Но вот класс добавляет большой обвес больерплэт. И я подумал, что вдруг такое можно сделать без классов, но в typescript
В рантайме все равно придется валидировать. И как я уже писал выше runtypes и ко с этим отлично справляется
type NumbersFrom4To10 = 4 | 5 | 6 | 7 | 8 | 9 | 10; type Foo = { val: NumbersFrom4To10 } Но это уебанство
Обсуждают сегодня