gpt4 book ai didi

typescript - 在 TypeScript 中定义一个空对象类型

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

我正在寻找定义不能保存任何值的空对象类型的方法。

type EmptyObject = {}

const MyObject: EmptyObject = {
thisShouldNotWork: {},
};

具有该类型的对象可以自由添加任何属性。如何强制 MyObject总是成为一个空对象?

我的实际用例是在接口(interface)内使用 EmptyObject 类型。

interface SchemaWithEmptyObject {
emptyObj: EmptyObject;
}

最佳答案

type EmptyObject = {
[K in any] : never
}

const one: EmptyObject = {}; // yes ok
const two: EmptyObject = {a: 1}; // error

我们在这里所说的是我们的 EmptyObject 的所有最终属性。只能是 never , 和 never没有代表值,创建这样的属性是不可能的,因此对象将保持为空,因为这是我们创建它而不会出现编译错误的唯一方法。

关于typescript - 在 TypeScript 中定义一个空对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111963/

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