Вы можете и не можете делать то, что ищете.
Если вы пишете себе правило lint, которое позволяет создавать схемы только из классов нормализатора, например new schema.Array()
, и запрещает использование сокращения []
, то вы можете проверить, используя 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
соответственно. Это гораздо сложнее проверить, потому что почти все в JavaScript typeof Object
(например, null
)