gpt4 book ai didi

TypeScript:深偏?

转载 作者:行者123 更新时间:2023-12-03 07:36:09 25 4
gpt4 key购买 nike

有没有办法在 TypeScript 中指定一个部分类型,它也使所有子对象也成为部分对象?例如:

interface Foobar {
foo: number;
bar: {
baz: boolean;
qux: string;
};
}

const foobar: Partial<Foobar> = {
foo: 1,
bar: { baz: true }
};

这会引发以下错误:

TS2741: Property 'qux' is missing in type '{ baz: true; }' but required in type '{ baz: boolean; qux: string; }'.



有没有办法使子节点也部分化?

最佳答案

您可以简单地创建一个新类型,例如 DeepPartial ,它基本上引用了自己:

type DeepPartial<T> = {
[P in keyof T]?: DeepPartial<T[P]>;
};

然后,您可以这样使用它:
const foobar: DeepPartial<Foobar> = {
foo: 1,
bar: { baz: true }
};

See proof-of-concept example on TypeScript Playground .

关于TypeScript:深偏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61132262/

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