2014-10-09 14 views
27

Tôi muốn sử dụng hàm javascript bên trong tệp bản ghi. Làm thế nào tôi có thể tham khảo các tập tin javascript có chứa chức năng đó bên trong tập tin typescript?Tham chiếu tệp javascript bên trong các loại

tôi đã cố gắng

<reference path="../libs/myjsfile.js" /> 

này mang lại một lỗi trong khi xây dựng như: Cannot resolve referenced file: ../libs/myjsfile.js

Trả lời

5

Bạn chỉ cần phải nói với trình biên dịch rằng phương pháp này tồn tại nguyên cảo bên ngoài:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void; 

Hãy chắc chắn rằng trang web tải tất cả các tệp cần thiết, tệp js bình thường và tệp js mà trình biên dịch bản ghi đã tạo ra

0

này mang lại một lỗi trong khi xây dựng như: Không thể giải quyết tập tin tham chiếu: ../libs/myjsfile.js

thẻ tập tin tham khảo dành cho nguyên cảo không JavaScript. Bạn sẽ tải JavaScript bằng cách sử dụng một thẻ script trong trang của bạn (hoặc một cái gì đó như requirejs).

Để sử dụng JavaScript từ TypeScript, bạn sẽ khai báo API của javascript bạn muốn sử dụng để tiêu thụ TypeScript (như AKR đã chỉ ra).

32

Trong khi hai câu trả lời ở trên sẽ hoạt động cho một API biến nhỏ hoặc đơn, câu trả lời đúng là viết một tệp khai báo kiểu cho tệp JavaScript của bạn.

Tệp khai báo kiểu cho ví dụ của bạn sẽ được đặt tên là myjsfile.d.ts, trong đó hậu tố .d.ts là điều cho trình biên dịch TypeScript biết rằng nó phân tích tệp khai báo. Nếu bạn sử dụng Visual Studio, tệp kê khai của bạn sẽ được trình biên dịch TypeScript công nhận miễn là nó ở đâu đó (bất kỳ đâu) trong dự án bạn đang làm việc.

Tệp khai báo lưu trữ siêu dữ liệu về các biến, hàm và đối tượng JavaScript để trình biên dịch TypeScript có thể thực hiện công việc của nó. Nếu tệp JavaScript của bạn là thư viện hoặc khung công tác được sử dụng phổ biến, thì DefinitelyTyped chắc chắn là nơi để tìm tệp định nghĩa bạn cần.

Nếu JavaScript của bạn là tác phẩm của riêng bạn hoặc ít nổi tiếng hơn, bạn sẽ phải viết tệp khai báo loại của riêng mình. Xem phần Viết các tệp .d.ts trong The TypeScript Handbook.

Nếu tệp khai báo có vẻ đáng sợ, đừng lo - chúng dễ viết hơn nhiều so với các chương trình. Ngoài ra, hãy nhớ rằng bạn không cần phải chỉ định tất cả siêu dữ liệu cho tệp JavaScript của mình, chỉ là chức năng bạn cần.

Hãy cho tôi biết nếu bạn cần bất kỳ trợ giúp nào!

+0

+1 Tuyệt vời TR: DR về cách hoạt động này, nói chung và cảm ơn cho repo DefinatelyTyped, có vẻ tốt nhất để kiểm tra có trước khi quyết định về một lib. –

+2

Nhưng sau đó CÁCH bạn bao gồm .d.ts trong tệp .ts của bạn? –

+0

Tệp d.ts cần phải nằm trong cùng một dự án với tệp .ts – Doug

0

Bạn có thể thấy phiên bản mới nhất của documenttion bản sao vào TypeScript Handbook on GitHub:

Ngoài ra tôi đang recomending bạn những tiện ích tsd để tìm kiếm và cài đặt các file định nghĩa nguyên cảo trực tiếp từ cộng đồng được chuyển hướng DefinitelyTyped kho lưu trữ. Kho lưu trữ này chứa các tệp định nghĩa * .d.ts cho các thư viện javascript phổ biến nhất.

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