gpt4 book ai didi

javascript - 将对象类型中的 "override"属性流向新类型

转载 作者:行者123 更新时间:2023-11-30 19:48:27 28 4
gpt4 key购买 nike

假设我是一个基于流的类型,类型如下:

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com