2016-12-23 1 views
1

많은 다른 ID 유형으로 서비스를 구성하고 있습니다. 그저 모두 nodeId: string이라고 부르지 않고.) 타이핑과 b.) 형식의 유효성 검사. 그래서 우리는 확인 런타임을 제공뿐만 아니라 코드베이스를 통해 나에게 유형을 줄 것이다 여기에 더 나은 방법이 있나요Typescript의 문자열 유형

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

내가 OP에서 제안한 것과 정확히 일치합니까? 당신은 장점의 무엇이든을 말하지 않고 어떻게 upvotes를 가지고 있냐, 나는 생각한다? –

+1

@ap 때로 사람들은 "내가하는 일이 여기에있다. 더 좋은 방법이 있나?"라는 질문을하는 경우가 있습니다. 그리고 때로는 대답은 분명히 "당신이하고있는 것이 유일한 방법입니다"라고합니다. 나는 더 좋은 방법이있을 것이라고 확신한다. (예를 들어, 제안 된 faraz에 연결된 것과 같은) 때때로 우리는 단지 우리의 소망을 얻지 못한다. – Louis