gpt4 book ai didi

Typescript 在返回嵌套对象时不返回嵌套类型

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

我希望我的函数返回嵌套类型的内容,但即使我们确定应该返回的类型,它也不起作用。让我们看一个例子:

type Content = {
some: {
extra: string;
prop: number;
},
other: string,
somenumber: number
}

const factory = (content: Content) => {
return (key: keyof Content) => {
return content[key];
};
};

const content:Content = {
some: {
extra: "wow",
prop: 123
},
other: "abc",
somenumber: 999
};

const el = factory(content);
const some = el("some"); // good, I can pass only existing key as a string
console.log(some.extra); // error, can't reach "extra"

LIVE EXAMPLE

我希望“some”包含并提出“extra”和“prop”,但采用“extra”会抛出 TypeScript。

最佳答案

使用泛型类型参数定义您的函数,以便 Typescript 可以正确推断类型:

const factory = (content: Content) => {
return <K extends keyof Content>(key: K) => {
return content[key];
};
};

See this live example.

关于Typescript 在返回嵌套对象时不返回嵌套类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55706883/

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