说我有以下代码。
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
类进行了更新,而我在代码中使用的myNPMPackage
版本与{ myNPMPackage
正在使用的{1}}版本?
很显然,在这种情况下,checkIfUserPackage
类在我的项目中可能与myNPMPackage.User
中的有所不同。但是我仍然希望该checkIfUserPackage
方法返回true。
在后台,checkIfUser
在NPM软件包版本之间如何工作?
如果这会在各个版本之间引起问题,是否有任何变通办法来确保instanceof
甚至在不同的版本之间都能返回预期的结果?