2014-06-08 32 views
5

javascript burada yaşıyorum sorun düzenli javascript olay benzemezTypeScript'te tuşa basıldığında nasıl algılanır?

//Some knockout event handler. 
myFunc(data : string, evt : Event) { 
    //If enter or tab key up were detected add the excuse to the collection. 
    if(evt.enterKey || evt.which == 9) 
     //Do Something 
} 

aşağıdaki satıra daktilo anlama sahip sözdizimi ne olurdu, typescript Olay sınıfı bir özellik enterKey veya which yok. Öyleyse, klavyede derleme hatasından ve basık kırmızı kıpkırmızı altı çizilmeden hangi tuşa basıldığını nasıl anlarım? aşağıda gösterildiği gibi

cevap

17

Sen, daha uzmanlaşmış olay türünü KeyboardEvent kullanmak gerekir:

myFunc(data : string, evt : KeyboardEvent) 

ayrıca evt.enterKey için hatalarını kaldırmak istiyorsanız arayüzü uzatarak onu eklemeniz gerekir - Ben her ne kadar değil mi bu gerçek mülkiyet olduğunu m farkında değil teknik bir kontrol tuşu, bütün olayı özelliklere sahip CTRL, SHIFT veya ALT gibi: Sen neee

interface KeyboardEvent { 
    enterKey: boolean; 
} 
2

d olayı kaydettirin, örneğin:

class EventHandler { 
    static RegisterKeyPress(input: string){ 
     document.getElementById(input).addListener('keypress', (e: KeyboardEvent) =>{ 
      //You have yout key code here 
      console.log(e.keyCode); 
     } 
    } 
} 

Mutlu kodlama!

İlgili konular