我尝试做的事情与自TypeScript 4.1发布以来许多其他开发人员可能一直在尝试的事情完全相同:使用预定义模式严格键入所有字符串。
虽然我设法为日期字符串找到了一个很好的折衷方案,但我现在面临着十六进制颜色代码的挑战。
显然,尝试HEX = 0的幼稚方法|一个|一个人。|“E”|“F”然后声明
type HEX_CODE = `#${HEX}${HEX}${HEX}${HEX}${HEX}${HEX}`;
会因为太多型别的并集而使型别过于复杂。
很公平。
所以我想我至少应该在十六进制代码前面加上#的要求,这意味着我可以满足于这样的要求:
type HEX_CODE = `#${arbitraryString}`;
但是我想不出一个方法来让它工作。有没有人知道如何使它工作,或者也许另一个(也许更好)妥协的类型?
2条答案
按热度按时间pw9qyyiw1#
这不就是:
打字场
tpgth1q72#
更新日期:2022年8月28日
查看此答案和更新的文章
这里有一个解决方案:
更新
现在,如果字符串长度不等于6,则抛出错误
Playground
在实际操作中,您只能将我的解决方案用于函数参数
Playground2