gpt4 book ai didi

具有未知属性的 typescript 非空对象

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

有没有一种方法可以定义一种类型,允许对象具有任何属性,但强制至少具有 1 个(未知)属性?

// this does not work

type Test = {
[key: string]: any
}

const obj: Test = {} // this should give an error
const anotherObj: Test = { something: "thing" } // this should work

最佳答案

这是我能想到的唯一解决方案(感谢@Fahd Lihidheb 的评论)

type NotEmpty<T> = keyof T extends never ? never : T

function createTest<T extends {[key: string]: any}>(test: NotEmpty<T>): T {
return test
}

const obj = createTest({}) // error
const anotherObj = createTest({ something: "thing" }) // works

我不认为仅使用 type 定义是可能的。我们必须改用工厂方法,这样我们才能推断 T 的类型并检查是否存在任何键。

关于具有未知属性的 typescript 非空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72040788/

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