假设我是一个基于流的类型,类型如下:
type baseTy = { x: number, y: number, z: number}
现在我希望(对于实用程序)有一个与 baseTy
相同的类型,但有一个属性不同:
type derivTy = {x: string, y: number, z: number}
显然我可以重新声明它,但是这是多余的并且可能会在以后更新时导致问题。所以我只想定义“差异”。如何使用流类型完成此操作?
我能做到:
type derivTy = $Diff<baseTy, {x: any}> & {x: string}
但是这看起来很冗长并且没有清楚地显示意思。有更好的方法吗?
最佳答案
您可以传播类型,这就是我们在代码库中创建相关类型的方式:
type BaseT = { a: string, b: number }
type SubBaseT = { ...$Exact<BaseT>, b: string }
const foo: SubBaseT = { a: 'hello', b: 'world' }
关于javascript - 将对象类型中的 "override"属性流向新类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724483/