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

标签 javascript flowtype

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

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/

相关文章:

javascript - 如何在 React Native 中显示 blob 图像

reactjs - 使用 Flow Typings react useRef Hook

npm 运行脚本流不起作用

javascript - 泛型类型 'ReturnType' 需要 1 个类型参数.ts(2314)

javascript - 发出单个值

javascript - 如何限制javascript中函数创建的动态元素的数量?

javascript - 如何防止在单击同一页面上的单独按钮之前单击某个按钮?

javascript - 从字符串中删除最后一个字符实例 - Javascript - 重访

javascript - 流提示对象默认值解构中的不兼容类型

javascript - 在@flow strict 下,对于实用功能,Object 有哪些替代方案?