Создайте внешний класс проверки, используя методы stati c, чтобы проверить тип классов - PullRequest
0 голосов
/ 24 января 2020

Мне нужно создать класс валидатора, чтобы использовать его в других моих классах, например: Validator. js

const Dog = require("./Dog");

class Validator {
  static isDog(animal) {
    if (animal instanceof Dog) {
      console.log("myDog is a Dog");
    } else {
      console.log("myDog is'nt a Dog");
    }
  }
}

module.exports = Validator;

Мне нужно импортировать класс Dog в классе Validator, чтобы я мог проверить тип .

Dog. js

const Validator = require("./Validator");

class Dog{
  compareDog(dog){
    if (Validator.isDog(dog)){
      console.log("Is dog");
    }
  }
}

module.exports = Dog;

Я должен импортировать класс Validator в класс Dog, чтобы использовать его.

index. js

const Dog = require("./Dog");

let myDog = new Dog();
let otherDog = new Dog();

myDog.compareDog(otherDog);

Это выдает эту ошибку

    if (animal instanceof Dog) {
               ^

TypeError: Right-hand side of 'instanceof' is not callable
    at Function.isDog (C:\Users\Jose\Desktop\borrar\Validator.js:5:16)
    at Dog.compareDog (C:\Users\Jose\Desktop\borrar\Dog.js:5:19)
    at Object.<anonymous> (C:\Users\Jose\Desktop\borrar\index.js:6:7)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11

Как мне этого добиться? Validator не должен быть классом, но по крайней мере мне нужно, чтобы он был в своем собственном файле, чтобы я мог использовать его повторно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...