首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将object-type中的属性“覆盖”到新类型

将object-type中的属性“覆盖”到新类型
EN

Stack Overflow用户
提问于 2019-02-16 23:12:02
回答 1查看 749关注 0票数 1

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

代码语言:javascript
复制
type baseTy = { x: number, y: number, z: number}

现在我希望(对于实用程序)有一个与baseTy相同的类型,但有一个属性不同:

代码语言:javascript
复制
type derivTy = {x: string, y: number, z: number}

显然,我可以重新声明它,但是这是多余的,可能会导致以后更新时出现问题。所以我只想定义一下“区别”。如何在流类型中做到这一点?

我可以这样做:

代码语言:javascript
复制
type derivTy = $Diff<baseTy, {x: any}> & {x: string}

然而,这看起来相当冗长,并且没有清楚地显示其含义。有没有更好的方法来做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-17 04:03:12

你可以扩展类型,这就是我们在代码库中创建相关类型所做的事情:

代码语言:javascript
复制
type BaseT = { a: string, b: number }
type SubBaseT = { ...$Exact<BaseT>, b: string }
const foo: SubBaseT = { a: 'hello', b: 'world' }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54724483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档