2014-06-08 6 views
5

Was die semantisch äquivalent Syntax in Typoskript an die folgende Zeile in Javascript, anders als bei normalen JavaScript-Event, Typoskript Event-Klasse Ich habeWie erkennt man eine Taste in TypeScript gedrückt?

//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 
} 

Das Problem hier ist, hat wäre nicht eine Eigenschaft enterKey oder which. Also wie erkenne ich, welche Taste gedrückt wird, ohne einen Fehler beim Kompilieren des Typoskripts und die unschöne rote Wiggly-Unterstreichung zu bekommen?

Antwort

17

Sie benötigen die speziellere Ereignistyp KeyboardEvent zu verwenden, wie unten dargestellt:

myFunc(data : string, evt : KeyboardEvent) 

Wenn Sie wollen auch Fehler entfernen für evt.enterKey müssen Sie es hinzufügen, indem Sie die Schnittstelle erstreckt - obwohl ich m nicht bewusst, dass dies eine echte Eigenschaft ist, da es nicht technisch eine Steuertaste ist, wie CTRL, SHIFT oder ALT, die alle Eigenschaften auf der Veranstaltung haben:

interface KeyboardEvent { 
    enterKey: boolean; 
} 
2

Sie neee d Registrieren Sie das Ereignis, zum Beispiel:

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

Happy Codierung!

Verwandte Themen