首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法使用TypeScript的类型系统将'template‘类型声明为特定类型的字符串

有没有办法使用TypeScript的类型系统将'template‘类型声明为特定类型的字符串
EN

Stack Overflow用户
提问于 2021-10-04 09:21:31
回答 1查看 23关注 0票数 0

想象一下这样的场景:

代码语言:javascript
运行
复制
type SpecificString = StringThatIsSixCharsLongAndAlphaNumeric;
const myFirstSpecificString: SpecificString = '7kj4lj'; // all good
const mySecondSpecificString: SpecificString = '_kj4lj'; // BUILD ERROR
const myThirdSpecificString: SpecificString = 'kj4lj'; // ANOTHER BUILD ERROR

如何实现这一点(如果可以实现的话)?请给我。ty

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 12:51:47

正如Yossarian船长所说,TypeScript不能做到这一点,但是可以通过使用type predicate来实现一种变通方法。在上面给定的SpecificString情况下,可以这样说:

代码语言:javascript
运行
复制
type SpecificString = string;
const isSpecificString = (value: any): value is SpecificString => {
    return value.length === 6 && value.match(/^[0-9A-Za-z]+$/) !== null
};
const isFirst = isSpecificString('7kj4lj'); // true
const isSecond = isSpecificString('_kj4lj'); // false
const isThird = isSpecificString('kj4lj'); // false

当然,需要注意的是,这发生在运行时,而不是编译时,而是¯\_(ツ)_/¯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69433650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档