반응형
특정 문자로 시작해야 하는 스크립트 문자열 유형
TypeScript에서는 다음과 같은 특정 문자열을 적용할 수 있습니다.
const myStrings = ['foo', 'bar', 'baz'] as const;
type MyStringTypes = typeof myStrings[number];
하지만, 제가 필요로 하는 것은 제 마지막 문자열의 첫 번째 문자만 시행하는 것입니다.
예를 들어, 유형을 만들고자 합니다.MyPrefixTypes
)와 같은 것으로'prefix1'
,'prefix2'
, ...,'prefixN'
그 다음에 다른 문자가 나옵니다.
이것을 사용하면, 저는 문자열이 정확한지 아닌지 확인할 수 있을 것입니다.
예:
const foo: MyPrefixTypes = 'prefix1blablabla'; // OK
const bar: MyPrefixTypes = 'incorrectprefixblablabla'; // NOT OK
TypeScript 4.1부터는 템플릿 리터럴 형식을 사용할 수 있습니다.
type StartsWithPrefix = `prefix${string}`;
이는 유형 조합에도 적용됩니다.
// `abc${string}` | `def${string}`
type UnionExample = `${'abc' | 'def'}${string}`;
// For your example:
type MyPrefixTypes = `${MyStringTypes}${string}`;
const ok: UnionExample = 'abc123';
const alsoOk: UnionExample = 'def123';
const notOk: UnionExample = 'abdxyz';
// Note that a string consisting of just the prefix is allowed
// (because '' is assignable to string so
// `${SomePrefix}${''}` == SomePrefix is valid)
const ok1: MyPrefixTypes = 'foo'
const ok2: MyPrefixTypes = 'barxyz'
const ok3: MyPrefixTypes = 'bazabc'
const notOk1: MyPrefixTypes = 'quxfoo'
도우미 유형을 정의할 수도 있습니다.
type WithPrefix<T extends string> = `${T}${string}`;
type StartsWithPrefix = WithPrefix<'prefix'>;
type UnionExample = WithPrefix<'abc' | 'def'>;
type MyPrefixTypes = WithPrefix<MyStringTypes>;
관련:
언급URL : https://stackoverflow.com/questions/68846567/typescript-string-type-that-must-start-with-specific-characters
반응형
'programing' 카테고리의 다른 글
매니페스토.MF: 메인 클래스와 시작 클래스의 차이 (0) | 2023.06.26 |
---|---|
문자열에서 특정 문자 제거 (0) | 2023.06.26 |
OnClick vs OnClient asp를 클릭합니다.체크박스? (0) | 2023.06.26 |
일부 파일의 변경 내용을 실행 취소 (0) | 2023.06.26 |
mongoDB 설치(하위 프로세스 실패, 오류 번호 100으로 종료) (0) | 2023.06.26 |