如何使用打字稿声明具有特定长度的字符串?

Posted

技术标签:

【中文标题】如何使用打字稿声明具有特定长度的字符串?【英文标题】:How do I declare a string that is of a specific length using typescript? 【发布时间】:2018-01-23 17:46:18 【问题描述】:

例如,一个只能有两个字符长的字符串,可以用于 ISO 国家/地区代码。

我用谷歌浏览过文档,但找不到答案。

【问题讨论】:

【参考方案1】:

您可以使用类型构造函数和幻像类型来实现这一点,这是一些值得学习的有趣技术。你可以看到我对类似问题的回答here

【讨论】:

【参考方案2】:

没有办法将字符串长度指定为类型。

如果你有一个有限的国家代码列表,你可以写一个字符串文字类型:

type CountryCode = 'US' | 'CN' | 'CA' | ...(lots of others);

【讨论】:

我想过做类似的事情,但使用npmjs.com/package/country-data,但我决定不这样做,因为考虑到国家代码将从后端 API 返回,这将是矫枉过正。我只是想确保变量不能包含任何明显错误的数据,并认为指定长度很简单。我也考虑过使用数组,但认为这有点令人费解,而且您显然无法为数组指定强制最大长度 (***.com/questions/41139763/…)

以上是关于如何使用打字稿声明具有特定长度的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿中声明函数类型

在 useState 的调度中使用未声明的字段时如何获取打字稿错误

如何使用打字稿定义一个对象以具有不同的字段?

具有命名属性和不同类型的任意命名索引属性的打字稿接口[重复]

如何让 VS Code 识别单回购包之间的打字稿声明?

如何在打字稿中声明全局变量