2015-08-24 16 views
7

Tôi đang cố gắng sử dụng trình trợ giúp phiên được gọi là connect-session-knex, điều này không rõ ràng đến nỗi nó không có định nghĩa bản ghi đã được xuất bản. Vì vậy, khi tôi cố gắng biên dịch dự án nút bản ghi của mình, tôi nhận được lỗi,Làm cách nào để nhập một thư viện vào nút mà không có định nghĩa Typescript/TSD?

error TS2307 Cannot find module 'connect-session-knex' 

Có cách nào bỏ qua TS cho mô-đun này không? Làm thế nào để nhập nó mà không có TSD? Tôi biết knex có một tsd, nhưng wrapper thì không. Tôi yêu cầu điều này từ quan điểm chung về việc phải làm gì với các thư viện không có định nghĩa kiểu.

Đối với bất kỳ ai đang tìm kiếm: Biên dịch bản ghi khi nó không có tsd. Thiếu tsd. Không có tsd.

+0

Xem https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-1.html, đặc biệt là nhập khẩu untyped –

Trả lời

12

lỗi TS2307 Không thể tìm thấy mô-đun 'connect-session-knex' Có cách nào bỏ qua TS cho mô-đun này không? Làm thế nào để nhập nó mà không có TSD?

Sử dụng var/require thay vì import/require. ví dụ:

var csk = require('connect-session-knex'); 

Lưu ý bạn nên có node.d.ts bao gồm cho require được khai báo.

Ngoài ra: https://basarat.gitbooks.io/typescript/content/docs/node/nodejs.html

5

gợi ý khác là để bắt đầu bạn sở hữu tập tin .d.ts như một tập tin định nghĩa rỗng và xuất khẩu các mô-đun. Sau đó, nếu bạn muốn nhận được intellisense trên mô-đun, bạn có thể thêm định nghĩa cho nó.

ví dụ: connect-session-knex.d.ts:

 

// declare module 
declare module "connect-session-knex" { 

} 
+0

Làm thế nào tôi có thể kết nối node_module với tập tin định nghĩa của tôi? –

+0

Không hoàn toàn hiểu câu hỏi @SebastianBusek – Quango

+0

Ví dụ: với 'connect-session-knex'; Tôi có thể tạo tập tin connect-session-knex.d.ts và sau đó thêm sử dụng 'import * như connectSessionKnex từ" connect-session-knex "' nhưng cách TS transcripter sẽ biết rằng connect-session-knex.d.ts là phù hợp với module connect-session-knex trong thư mục node_modules? –

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