2016-12-23 6 views
1

Я создаю набор сервисов с большим количеством разных типов идентификаторов. Вместо того, чтобы просто называть их всех nodeId: string, я хотел бы иметь.) Ввод текста и b.) Проверка формата. Таким образом, мы в конечном итоге с чем-то вродеСтроковые типы в машинописном тексте

export class LogicalId extends String { 
    constructor(value: string) { 
     if (!/somepattern/.exec(value) { 
      throw new ValidationError(...); 
     } 
     super(value); 
    } 
} 

Есть ли лучший подход здесь, который даст мне типы через кодовую, а также предоставление проверки выполнения?

+0

Вам нужна проверка времени выполнения или времени выполнения? –

+0

Я хотел бы иметь оба, в идеале. –

ответ

1

Использование регулярных выражений для определения типов в настоящее время не поддерживается функцией TypeScript, но it's a feature issue that's being discussed.

Лучшим обходным решением пока будет создание класса-оболочки, который вы передадите вместо необработанной строки.

+0

Это именно то, что я предлагаю в ОП? Интересно, как у вас есть заклинания, не сказав ничего хорошего? –

+1

@ap Иногда люди задают вопросы, в которых говорят: «Вот что я делаю, есть ли лучший способ?» и иногда ответ * однозначно есть * «то, что вы делаете, является единственным способом (прямо сейчас)». Я уверен, что был бы лучший способ (например, что-то вроде предложения faraz, связанного с), но иногда мы просто не получаем наших желаний. – Louis

Смежные вопросы