move implements and instanceOf methods to inheritance

This commit is contained in:
Ralf Becker
2020-01-21 10:36:02 +01:00
parent 68f9d4c0cf
commit 7141ac3fd6
4 changed files with 62 additions and 62 deletions

View File

@ -158,6 +158,34 @@ var ClassWithAttributes = /** @class */ (function () {
}
return attributes;
};
/**
* The implements function can be used to check whether the object
* implements the given interface.
*
* As TypeScript can not (yet) check if an objects implements an interface on runtime,
* we currently implements with each interface a function called 'implements_'+interfacename
* to be able to check here.
*
* @param _iface name of interface to check
*/
ClassWithAttributes.prototype.implements = function (_iface_name) {
if (typeof window['implements_' + _iface_name] === 'function' &&
window['implements_' + _iface_name](this)) {
return true;
}
return false;
};
/**
* Check if object is an instance of a class or implements an interface (specified by the interfaces name)
*
* @param _class_or_interfacename class(-name) or string with name of interface
*/
ClassWithAttributes.prototype.instanceOf = function (_class_or_interfacename) {
if (typeof _class_or_interfacename === 'string') {
return this.implements(_class_or_interfacename);
}
return this instanceof _class_or_interfacename;
};
return ClassWithAttributes;
}());
exports.ClassWithAttributes = ClassWithAttributes;