假设我有一个基于流的类型,其类型如下:
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}然而,这看起来相当冗长,并且没有清楚地显示其含义。有没有更好的方法来做这件事?
发布于 2019-02-17 04:03:12
你可以扩展类型,这就是我们在代码库中创建相关类型所做的事情:
type BaseT = { a: string, b: number }
type SubBaseT = { ...$Exact<BaseT>, b: string }
const foo: SubBaseT = { a: 'hello', b: 'world' }https://stackoverflow.com/questions/54724483
复制相似问题