Sza*_*lyi 5 types typing typescript
我想在 TypeScript 中创建两种类型,它们都是数字:
export type GlobalPortIndex = number;
export type TypePortIndex = number;
Run Code Online (Sandbox Code Playgroud)
据我了解,TypeScript 会认为它们是相互兼容的,因为它们完全重叠。
但我希望它们不兼容,所以当我输入某些内容时GlobalPortIndex,如果我尝试TypePortIndex为其分配 a ,我会收到类型错误。这是为了确保我不会在代码中将它们混淆,例如我无法将其中一个传递给需要另一个的函数。
有什么 TypeScript 技巧可以实现这一点吗?
小智 0
我不是打字稿方面的专家,但是如果您实际上将值包装到类中然后静态检查类类型不是更好吗?
由于看起来您有一个对象类型为GlobalPortIndex,而另一个对象类型为TypePortIndex,因此它们有不同的用途。
或者也许将它们设置为enum语法可以解决这个问题?
enum FooKeys {
FOO = 'foo',
BAR = 'bar',
}
// probably all you need, but it's a type alias
type FooType = Record<FooKeys, string>;
Run Code Online (Sandbox Code Playgroud)
上面的代码引用自这篇文章:How to build a type from enum values in TypeScript?
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |