14

Tôi đang tạo tiện ích mở rộng chrome được viết bằng TypeScript. Tôi đang sử dụng WebStorm và tôi đã thêm thư viện chrome-DefiniteltyTyped vào dự án của mình.Sử dụng apis tiện ích mở rộng chrome trong số

Tuy nhiên, khi tôi viết mã này vào mã số của tôi: chrome.extension.getURL Tôi gặp lỗi: cannot find name 'chrome'.

Vì điều này, tệp javascript của tôi không được tạo và tôi không thể sử dụng nó trong tiện ích của mình.

Các bạn có giải pháp nào không?

Trả lời

17

Tính đến nguyên cảo 2 (hoặc 2.x, không chắc chắn), bạn nên nhập các loại chrome từ @types.

trong package.json:

"devDependencies": { 
    ... 
    "@types/chrome": "0.0.35", // or just npm install --save-dev @types/chrome 

Và trong tsconfig:

"types": [ 
     //(various types, e.g. jquery, core-js), 
     "chrome" 
    ] 
+0

Bạn có thể giải thích tại sao nó là 'devDependency' và không phải là thông thường? – Soflete

+0

Tôi nghĩ rằng nếu bạn có ý định chạy trực tiếp bản ghi loại trong nền tảng đích (trình duyệt/nút/etc), bạn nên di chuyển các loại phụ thuộc vào sản xuất. Nếu không (mà tôi nghĩ là trường hợp phổ biến), phân phối là kết quả js. Sử dụng sau không yêu cầu các định nghĩa kiểu, chúng chỉ cần thiết cho việc kiểm tra kiểu trong quá trình chuyển dịch ts. – dfl

+0

Làm thế nào nó hoạt động? chúng tôi phải nhập "nhập {Chrome} từ '@ types/chrome';"? – Gerard

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