Скажите, у меня есть следующий код.
const myNPMPackage = require("myNPMPackage");
const checkIfUserPackage = require("checkIfUserPackage");
const userObj = {"name": {"first": "Joe", "last": "Smith"}};
const user = new myNPMPackage.User(userObj);
checkIfUserPackage.checkIfUser(user); // true
checkIfUserPackage.checkIfUser(userObj); // false
// Then in the `checkIfUserPackage` package it has the following code, and also has `myNPMPackage` as a dependency of `checkIfUserPackage`
const myNPMPackage = require("myNPMPackage");
module.exports.checkIfUser = (user) => user instanceof myNPMPackage.User;
Этот код работает отлично и как ожидалось.
Мой вопрос: что произойдет, если myNPMPackage
сделает обновление для этого User
class, и версия myNPMPackage
, которую я использую в своем коде, отличается от версии myNPMPackage
, которую использует checkIfUserPackage
?
Очевидно, что в этом случае возможно, что myNPMPackage.User
класс будет отличаться в моем проекте от checkIfUserPackage
. Но я все еще хочу, чтобы метод checkIfUser
возвращал значение true.
Как работает instanceof
между NPM версиями пакета?
Если это вызовет проблемы между версиями, Есть ли обходные пути, чтобы гарантировать, что даже в разных версиях instanceof
вернет ожидаемый результат?