2017-12-05 15 views
5

Tôi đang cố thêm một hàm async vào một dự án TypeScript. Mã này trông như thế này:TypeScript phàn nàn có và không có lib

chrome.tabs.onUpdated.addListener(async (id, c, t) => { ... }); 

nguyên cảo phàn nàn: TS2705

lỗi: Một chức năng async hoặc phương pháp trong ES5/ES3 đòi hỏi xây dựng các 'Promise'. Hãy chắc chắn rằng bạn có một tuyên bố cho constructor 'Promise' hoặc bao gồm 'ES2015' trong tùy chọn --lib bạn

Khi tôi thêm lib: ['es2015'] để tsconfig, nguyên cảo bắt đầu phàn nàn về tất cả các cuộc gọi đến console.log nói console đó là không xác định.

Trả lời

4

Các default libs cho es5DOM,ES5, vì vậy nếu bạn chỉ định es2015 bạn cũng sẽ cần phải thêm dom một cách rõ ràng như console được định nghĩa trong thư viện dom. Mẫu tsconfig.json:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "lib": [ 
      "es2015", 
      "dom" 
     ] 
    } 
} 

Loại có cách tiếp cận theo mô-đun cho thư viện mặc định, vì vậy bạn chỉ có thể bao gồm những gì có sẵn dựa trên môi trường của mình.

+0

Điều này gần như hoạt động! tslint vẫn còn phàn nàn về nó! $ # @ $ # @ $ # @. Tôi sẽ chỉ nói với nó để bỏ qua kiểm tra này. – zmbq

+0

# @! # @! #! @ Tôi không thể tìm cách tắt thông báo này! Đó là tslint hoặc PyCharm. – zmbq

+0

Bạn nhận được thông báo gì? –

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