2013-09-06 11 views
7

Ancora nuovo su TypeScript, quindi questa domanda potrebbe sembrare stupida ad alcuni di voi. Ho una classe ToolTip come questo:TypeScript: metodo statico di accesso di una classe

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

E voglio chiamarlo da un'altra classe

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; 

ma mi dà questo errore:

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

Qualsiasi idea di come risolvere Questo?

+0

Questo funziona per me. Stai usando la 0.9.1.1? –

+0

Anche io sto usando 0.9.1.1, usando Webstorm EAP per compilarlo. –

+0

Non penso che Webstorm raccolga automaticamente l'ultimo compilatore TypeScript. Puoi riprodurre il problema usando 'tsc.exe'? –

risposta

3

Come si può vedere il codice funziona bene (compila e piste):

enter image description here

Così possibili motivi per cui non avrebbe funzionato per voi:

  • Non hai compilazione con l'opzione --module commonjs (Video Tutorial)
  • Si dispone di una cartella denominata TootTip allo stesso livello di Tooltip.ts che può causare che nodejs esegua ciò che potreste non aspettarvi.
+0

Grazie ragazzi, ho trovato l'errore. Quando cambio il nome del file da "Tooltip" a "ToolTip", il javascript non viene mai aggiornato, quindi cerca Tooltip.js invece di ToolTip.js. –

Problemi correlati