Búsqueda de sitios web

TypeScript: acceder al método estático de una clase


Aún soy nuevo en TypeScript, así que esta pregunta puede sonar tonta para algunos de ustedes. Tengo una clase ToolTip así:

class ToolTip{
    public static show (str:string):void{
        console.log ("ToolTip show():" + str);
    }
    public static hide():void{
        console.log ("ToolTip hide()");
    }
}
export = ToolTip;

Y quiero llamarlo desde otra clase

import ToolTip = require ("app/view/common/Tooltip");

class Button  {
......
    private handleMouseEvent(event:MouseEvent):void {
        switch (event.type) {
            case "mouseover":
                ToolTip.show("tool tip string");
                break;
            case "mouseout":
                ToolTip.hide();
                break;            
        }
    }
......
}

export = MenuItem;

Pero me da este error:

Uncaught TypeError: Object app/view/common/Tooltip has no method 'show'

¿Alguna idea de cómo arreglar esto?

Respuesta #1

Como puedes ver, el código funciona bien (compila y se ejecuta) :

Entonces, posibles razones por las que no funcionaría para ti:

  • No compilaste con la opción --module commonjs (Tutorial en video)
  • Tienes una carpeta llamada TootTip al mismo nivel que Tooltip.ts, lo que puede hacer que Node.js ejecute algo que quizás no habías esperado.

Artículos relacionados