gpt4 book ai didi

javascript - JavaScript 中的结构类型检查

转载 作者:行者123 更新时间:2023-11-28 12:12:50 25 4
gpt4 key购买 nike

我想知道是否有一种通用的方法(也许是一个库)来检查对象的结构(例如鸭子类型)。

这对于运行时类型检查和编写单元测试都很有用。

我想我正在寻找类似于 typescript “接口(interface)”的东西,但是 typescript 只进行静态检查。

最佳答案

没有简单的方法,但是实用函数怎么样?:

function isOfType(obj, model) {
for (let prop in model) {
if (!(prop in obj) || typeof obj[prop] !== typeof model[prop] || Array.isArray(model[prop]) !== Array.isArray(obj[prop])) {
return false;
}
if (typeof model[prop] === 'object' && !Array.isArray(model[prop])) {
if (!isOfType(obj[prop], model[prop])) {
return false;
}
}
}
return true;
}

基本上,您可以将任何对象与模型进行比较。它将确保该对象具有模型具有的相同类型的所有属性,并将其递归地应用于嵌套对象。

关于javascript - JavaScript 中的结构类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118453/

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