Pertanyaan TypeScript: akses metode statis kelas


Masih baru di TypeScript jadi pertanyaan ini mungkin terdengar bodoh bagi sebagian dari Anda. Saya memiliki kelas ToolTip seperti ini:

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

Dan saya ingin menyebutnya dari kelas lain

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;

Tapi itu memberi saya kesalahan ini:

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

Tahu bagaimana cara memperbaikinya?


8
2017-09-06 16:10


asal


Jawaban:


Seperti yang Anda lihat kode berfungsi dengan baik (kompilasi dan berjalan):

enter image description here

Jadi kemungkinan alasan mengapa itu tidak akan berhasil untuk Anda:

  • Anda tidak melakukan kompilasi dengan --module commonjs pilihan (Video tutorial)
  • Anda memiliki folder bernama TootTip pada level yang sama dengan Tooltip.ts yang dapat menyebabkan nodejs untuk menjalankan apa yang mungkin tidak Anda harapkan.

3
2017-09-07 01:26