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;

View File

@ -214,4 +214,38 @@ export class ClassWithAttributes
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
*/
implements (_iface_name : string)
{
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
*/
instanceOf(_class_or_interfacename: any) : boolean
{
if (typeof _class_or_interfacename === 'string')
{
return this.implements(_class_or_interfacename);
}
return this instanceof _class_or_interfacename;
}
}

View File

@ -822,34 +822,6 @@ var et2_widget = /** @class */ (function (_super) {
path.pop();
return path;
};
/**
* 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
*/
et2_widget.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
*/
et2_widget.prototype.instanceOf = function (_class_or_interfacename) {
if (typeof _class_or_interfacename === 'string') {
return this.implements(_class_or_interfacename);
}
return this instanceof _class_or_interfacename;
};
et2_widget._attributes = {
"id": {
"name": "ID",

View File

@ -1029,38 +1029,4 @@ export class et2_widget extends ClassWithAttributes
return path;
}
/**
* 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
*/
implements (_iface_name : string)
{
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
*/
instanceOf(_class_or_interfacename: any) : boolean
{
if (typeof _class_or_interfacename === 'string')
{
return this.implements(_class_or_interfacename);
}
return this instanceof _class_or_interfacename;
}
}