gpt4 book ai didi

typescript 根据输入参数返回对象键

转载 作者:行者123 更新时间:2023-12-05 08:05:03 24 4
gpt4 key购买 nike

我想编写一个接受名称参数的函数,然后使用它来创建返回对象属性名称:

function myFunction (name: string) {
// ....

return {
[`provide${name}`]: {},
[`consume${name}`]: {}
}

const { provideTest, consumeTest } = myFunction('Test')

我应该如何输入这个函数?

最佳答案

我会输入 playground :

function myFunction(name: string): {
[x: string]: {};
} {
// ....

return {
[`provide${name}`]: {},
[`consume${name}`]: {},
};
}

const {
provideTest,
consumeTest,
} = myFunction('Test');

很遗憾,您无法根据name 的值生成类型。


作为替代方案,您可以要求用户提供 key ,这样返回的数据将是强类型的:playground .

在我看来,第一种方式更好。

function myFunction<T extends string = string>(name: string): {
[x in T]: {};
} {
// ....

return {
[`provide${name}`]: {},
[`consume${name}`]: {},
} as {
[x in T]: {};
};
}

const {
provideTest,
consumeTest,
} = myFunction<'provideTest' | 'consumeTest'>('Test');

关于 typescript 根据输入参数返回对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66137107/

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