首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查函数参数是否是Normalizr模式类?

如何检查函数参数是否是Normalizr模式类?
EN

Stack Overflow用户
提问于 2019-05-06 01:23:41
回答 1查看 64关注 0票数 0

是否有任何方法在运行时中检查函数参数是否是Normalizr模式类?可以是任何类型:实体、数组、对象等。

例如:

代码语言:javascript
复制
function processTMDBRespose(response, schema) {
  // if 'schema' param is not a normalizr schema, throw!

  // some code
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-06 23:59:47

你可以也不能做你想要的。

如果您自己编写了一个只允许从像new schema.Array()这样的normalizr类创建模式并禁止使用速记[]的林特规则,那么您可以使用instanceof进行检查:

代码语言:javascript
复制
if (
    mySchema instanceof schema.Array || 
    mySchema instanceof schema.Entity ||
    mySchema instanceof schema.Object ||
    mySchema instanceof schema.Union ||
    mySchema instanceof schema.Values
) { 
    // your  code
} else {
    throw new Error('mySchema is not a schema');
}

但是,如果使用速记,任何数组[]或普通对象{}也分别是schema.Arrayschema.Object的有效架构。这要难得多,因为几乎所有东西都是typeof Object in JavaScript (如null)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55997782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档