En ActionScript, es posible verificar el tipo en tiempo de ejecución utilizando el operador is :
var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject);// true
trace(mySprite is IEventDispatcher); // true
¿Es posible detectar si una variable (se extiende o) es una determinada clase o interfaz con TypeScript?
No pude encontrar nada al respecto en las especificaciones del idioma. Debería estar allí cuando se trabaja con clases / interfaces.
fuente

Std.is(pet, Fish), que funciona en tipos, interfaces, etc.isFishsí mismo es el predicado que se crea, y su cuerpo no tiene que ser un predicado de una sola línea. La ventaja de esto es que el compilador comprende en tiempo de compilación las funciones posibles apropiadas, pero su código internoisFishse ejecuta en tiempo de ejecución. Incluso podría hacer que el protector contenga unainstanceofdeclaración, por ejemploreturn pet instanceof Fish(suponiendo que sea una clase y no una interfaz), pero esto sería innecesario ya que el compilador entiendeinstanceofdirectamente.(pet as Fish)ya que el tslinter se quejará(<Fish>pet). Ver tslint docPuede usar el
instanceofoperador para esto. De MDN:Si no sabe qué prototipos y cadenas de prototipos son, le recomiendo que lo busque. También aquí hay un ejemplo de JS (TS funciona de manera similar a este respecto) que podría aclarar el concepto:
La cadena prototipo en este ejemplo es:
animal> Animal.prototype> Object.prototype
fuente