gpt4 book ai didi

TypeScript:断言对象字面量具有彼此相等的键值

转载 作者:行者123 更新时间:2023-12-03 21:14:31 25 4
gpt4 key购买 nike

是否可以在 TypeScript 中断言 const对象文字是以每个键等于其值的方式制作的?

换句话说:

// Good
const testIds: KeyEqualsValue = {
foo: 'foo'
} as const

// Bad
const testIds: KeyEqualsValue = {
foo: 'bar' // Error
} as const

最佳答案

不是单一类型,你可以用一个函数来完成:

function propAsValue<T extends { [P in keyof T]: P }>(o: T) {
return o;
}
const testIds = propAsValue({
foo: 'foo'
});

const testIds2 = propAsValue({
foo: 'bar'
});

Playground Link

或者使用内联函数,如果您想简洁明了并使每个人都感到困惑:
const testIds = (<T extends { [P in keyof T]: P }>(o: T) => o)({
foo: 'foo'
});

虽然我不确定您的用例是什么,但您最好使用 Object.keys .

关于TypeScript:断言对象字面量具有彼此相等的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61666216/

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