typescript - 如何防止自定义字符串类型的混合?
问题描述
假设我们有两个自定义类型,都派生自字符串,以及两个对应的变量。
type A = string;
let a: A = "a";
type B = string;
let b: B = "b";
如何更改代码或编译器配置,从而引发类型不匹配错误?
a = b;
解决方案
Typescript 具有结构类型系统,而不是名义类型系统。实际上,这意味着重要的是事物的形状,而不是您碰巧命名的事物。因此,鉴于您的示例,不可能限制事物。
如果A
并且B
只能在编译时从一组已知字符串中分配,则可以更准确地表示它们。
例如:
type A = 'one' | 'two';
type B = 'three' | 'four';
这些类型不能相互分配
推荐阅读
- google-apps-script - 我想移动到在特定列中没有值的另一个工作表行
- swift - 如何获取 UITableView 中的所有 UITextField 值?
- javascript - js中的快速排序
- css - 如何像角材料步进器一样实现离子步进器?
- jenkins - 使用 Jenkins 管道作业中的 Helm 客户端部署 Kubernetes helm 的可行性
- python - 带有数字的正则表达式标记化?
- javascript - 无法通过从变量中获取纬度和经度来重新初始化谷歌地图
- javascript - 在 react 中将 window.addEventListener 添加到 componentDidMount 方法是否正确?
- git - 使远程分支 5 次提交
- excel - 复制粘贴操作导致#VALUE!错误