Skip to content

「重学TS 2.0 」TS 练习题第四十六题 #67

@semlinker

Description

@semlinker

实现 RequireAllOrNone 工具类型,用于满足以下功能。即当设置 age 属性时,gender 属性也会变成必填。具体的使用示例如下所示:

interface Person {
  name: string;
  age?: number;
  gender?: number;
}

type RequireAllOrNone<T, K extends keyof T> = // 你的实现代码

const p1: RequireAllOrNone<Person, 'age' | 'gender'> = {
  name: "lolo"
};

const p2: RequireAllOrNone<Person, 'age' | 'gender'> = {
  name: "lolo",
  age: 7,
  gender: 1
};

请在下面评论你的答案

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions