是否有任何方法在运行时中检查函数参数是否是Normalizr模式类?可以是任何类型:实体、数组、对象等。
例如:
function processTMDBRespose(response, schema) {
// if 'schema' param is not a normalizr schema, throw!
// some code
}发布于 2019-05-06 23:59:47
你可以也不能做你想要的。
如果您自己编写了一个只允许从像new schema.Array()这样的normalizr类创建模式并禁止使用速记[]的林特规则,那么您可以使用instanceof进行检查:
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.Array和schema.Object的有效架构。这要难得多,因为几乎所有东西都是typeof Object in JavaScript (如null)。
https://stackoverflow.com/questions/55997782
复制相似问题