gpt4 book ai didi

typescript - 是否可以从部分类型生成严格类型?

转载 作者:搜寻专家 更新时间:2023-10-30 20:37:54 26 4
gpt4 key购买 nike

我们可以从严格类型生成部分类型,如下所示(来自 TypeScript 2.1):

type Partial<T> = {
[P in keyof T]?: T[P];
};
type Person = { name: string, age: number }
type PersonPartial = Partial<Person>; // === { name?: string, age?: number }

反过来,是否可以从部分类型生成严格类型?

type Strict<T> = { ??? };

type Person = { name: string; age?: number; }
type PersonStrict = Strict<Person>; // === { name: string, age: number }

我真正想要的

我需要以下 2 种类型,但不想写两次。

type Person = { name: string, age?: number, /* and other props */ }
type PersonStrict = { name: string, age: number, /* and other props */ }

我找到了如下所示的详细解决方案,但我想知道是否有更好的方法。

type RequiredProps = { name: string, /* and other required props */ };
type OptionalProps = { age: number, /* and other optional props */ };
type Person = RequiredProps & Partial<OptionalProps>;
type PersonStrict = RequiredProps & OptionalProps;

最佳答案

使用Required类型。

type Person = { name: string; age?: number; }
type RequiredPerson = Required<Person>; // === { name: string, age: number }

关于typescript - 是否可以从部分类型生成严格类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41036336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com