2012-10-07 31 views
13

Có thể sử dụng thư viện JavaScript trong TypeScript không?Sử dụng thư viện JavaScript Raphael trong TypeScript

Ví dụ: tôi muốn sử dụng Raphael trong TypeScript và thêm tệp JS trong số /scripts folder và thêm chúng vào _references.js.

Nhưng khi tôi muốn tuyên bố trong file TS của tôi:

var r = Raphael(10,50,640,480); 

Intellisense luôn nói:

Raphael does not exist in the current scope.

và file TS không biên dịch.

Trả lời

19

Dòng này là một tuyên bố xung quanh:

declare var Raphael: any; 

Trong khi nó hoạt động, bạn không nhận được đánh máy thật.

Dự án DefinitelyTyped đã có định nghĩa cho Raphael.

Tải xuống tệp raphael.d.ts.

Và sử dụng nó như thế này:

/// <reference path="../Definitions/raphael.d.ts" /> 
0

Tôi hỗ trợ câu trả lời trước, tuyên bố Raphael là var với bất kỳ loại nào và nó sẽ hoạt động. Nhưng nếu bạn nghiêm túc muốn lợi dụng kịch bản kiểu thì hãy tạo tệp kê khai cho Raphael js. Vì vậy, điều đó sẽ cung cấp intellisense bất cứ khi nào bạn sử dụng Raphael js. Dưới đây là link cho tệp khai báo Jquery có sẵn trong các mẫu được cung cấp bởi trang web loại. Chỉ cần có một cái nhìn nó sẽ giúp đỡ. Xin vui lòng cho tôi biết nếu có thêm chi tiết cần thiết.

+0

là có một công cụ để tạo ra một tập tin khai tự động? – daniel

+0

trình biên dịch dòng lệnh đang làm điều đó, nhưng tôi đoán nó là dành cho bản ghi để khai báo tập tin kiểu, không phải từ javascript để khai báo tập tin. Bạn vẫn có thể thử sao chép dán từ js để ts và cố gắng tạo ra tuyên bố nhưng tôi không chắc chắn về điều đó. – kunjee

0

Như đã lưu ý trước đây, bạn có thể khai báo Raphael dưới dạng biến "bất kỳ", nhưng nếu bạn muốn IntelliSense và kiểm tra thời gian biên dịch, bạn sẽ cần một tệp khai báo. Tôi đã đi trước và lấy một đâm ban đầu lúc này ở đây: https://bitbucket.org/keesey/raphaelts

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