JSFiddle - React, Tailwind, and code Playground
JavaScript
class Base {
static get type() {
return 'Base';
}
}
class Derived extends Base {
}
class Derived2 extends Base {
}
var t = new Derived();
/**
* @template {typeof Base} T
* @param {T} cl
* @returns {T}
*/
function checkTop( cl ) {
if ( t instanceof cl ) {
return t;
}
return undefined;
}
// typeof Derived
let d1 = checkTop( Derived );
// typeof Derived2
let d2 = checkTop( Derived2 );