169 похожих чатов

Или просто есть у меня такой формат YYYY-MM-DD можно ли как-то такое

типизировать?

9 ответов

13 просмотров

Со стака: Starting in 4.1 you can define a type that would validate the string without actually defining all the options: type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" type MarkerTime =`${Digit}${Digit}:${Digit}${Digit}` | {Digit}:${Digit}${Digit}` let a: MarkerTime = "0-00" // error let b: MarkerTime = "0:00" // ok let c: MarkerTime = "09:00" // ok

Пользователь-6102d Автор вопроса

это очень круто, а кинь ссылку

https://stackoverflow.com/questions/51445767/how-to-define-a-regex-matched-string-type-in-typescript

Пользователь-6102d Автор вопроса

Эх, а хотя не получиться сделать, что я хочу, смотри что выдаёт https://www.typescriptlang.org/play?#code/MYewdgzgLgBAZiATgWwIZQCLoKYBUQCCACgJIwC8MAFACY4BcM0iAlmAOYwA+MWU2ASgoA+GAG8AUDBihIsMEjQAbFgC9sNPtkZaKMOvxhtoqMMGwg4vHDAD8+m4zDYA7tf60cAgNxSYibCgAV0QwGAUUVBV1TRwAOigQEgBlAHlkqFYOKgE4iAAHFSgqACJcEoEAbQAGAF0YAGoYMurq+lb26rjW6pLfAF9fCVloB0NKZzctHIkJKABPfOxeFnYWWEoS3u5mgEYSnZKAJgOeEoBmU+aAFiuSgFY7gDY7gHY7gA47gE4S2YWljAALKoRAAa2wiFwLGQy3IAAMACRiDCrdb9ZGotZQDEotE4zH4-oAWkJ2P68NmIxASmwcSUIHYVAQkUwOHwxBInn4AgEQA

Предполагаю, что тебе следует непосредственно в проекте попробовать Expression produces a union type that is too complex to represent.

Пользователь-6102d Автор вопроса

неа, тоже самое

Глянь второй ответ. Он свежее

Да, составить один юнион из всех вариантов строк для даты не получится (юнионы в TS могут состоять не более чем из 100 000 частей), но можно проверять строку на соответствие формату по частям: play.

Пользователь-6102d Автор вопроса

Интересное решение, спасибо. Ещё кол-во вариантов для года можно отсечь, если учитывать только последние 2 века.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта