小编Sho*_*r91的帖子

基于嵌套对象内的属性的打字稿联合

我正在尝试基于对象中的嵌套属性创建联合类型。请参阅下面的示例:

type Foo = {
    abilities: {
        canManage: boolean
    }
}

type Bar = {
    abilities: {
        canManage: boolean
    }
    extraProp: number
}

type Condition1 = {
    abilities: {
        canManage: true
    }
} & Bar

type Condition2 = {
    abilities: {
        canManage: false
    }
} & Foo

type TotalData = Condition1 | Condition2

const data: TotalData = {
    abilities: {
        canManage: false, // if canManage is false, TS should complain when I add the `extraProp` key
    },
    extraProp: 5
} …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-typings react-typescript

1
推荐指数
1
解决办法
694
查看次数