2014-06-08 12 views
5

Điều gì sẽ là cú pháp ngữ nghĩa tương đương trong nguyên cảo vào dòng sau trong javascriptLàm cách nào để phát hiện phím được nhấn trong TypeScript?

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

Vấn đề tôi đang gặp ở đây là không giống như sự kiện javascript thường xuyên, lớp nguyên cảo tổ chức sự kiện không có một tài sản enterKey hoặc which. Vậy làm cách nào để phát hiện khóa nào đang được nhấn mà không nhận được lỗi biên dịch dạng chữ và màu đỏ xấu xí vặn vẹo?

Trả lời

17

Bạn cần phải sử dụng các sự kiện chuyên biệt hơn loại KeyboardEvent, như hình dưới đây:

myFunc(data : string, evt : KeyboardEvent) 

Nếu bạn cũng muốn để loại bỏ lỗi cho evt.enterKey bạn sẽ cần phải thêm nó bằng cách mở rộng giao diện - mặc dù tôi m không nhận thức được rằng đây là một tài sản thực như nó không phải là kỹ thuật một phím điều khiển, như CTRL, SHIFT hoặc ALT, mà tất cả đều có tài sản trên sự kiện:

interface KeyboardEvent { 
    enterKey: boolean; 
} 
2

Bạn neee d đăng ký sự kiện, ví dụ:

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

Chúc mừng mã hóa!

Các vấn đề liên quan