gpt4 book ai didi

TypeScript 严格类/接口(interface)

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

我使用 TypeScript 2.3.4 版。我想编写一个接受必须具有指定字段的对象的函数。但是这个对象不应该包含任何其他字段。我怎样才能做到这一点?

现在这只有在我定义内联对象时才有效。但是如果我使用另一个带有额外字段的对象 - 编译器将允许它。什么是完全错误的。

例子:

function foo(arg: { a: string }) { // there is tons of fields actually
// ...
}

foo ({a: "qwerty"}); // No Error - ok

foo ({a: "qwerty", b: 123}); // Error - ok

let bar = {
a: "qwerty",
b: 123
};

foo (bar); // No Error - NOT OK !!!

同样的代码可以用接口(interface)、类、类型声明来编写——这是同样的问题。

现在我必须手动从对象中提取字段以确保没有多余的字段。但是我不能在整个代码中将这个解决方案扩展到 ~1000 个函数(我真的需要这个)——它太困惑了。我创建了 API 包装器,我需要确保没有额外的或错误的字段传递给服务器。

最佳答案

您要求的功能称为“exact types”。
正在考虑中,即既没有拒绝也没有接受,讨论还在继续。

关于TypeScript 严格类/接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44645560/

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