2013-05-31 26 views
12

Tôi muốn bắt đầu sử dụng TypeScript trong một dự án hiện có, nhưng đã có một số thư viện JavaScript được chia sẻ mà tôi cần sử dụng trong một tệp TypeScript. Có cách nào để TypeScript tham chiếu đến các thư viện JavaScript hiện có với mã liên quan đến dự án không?Bản đánh chữ có hỗ trợ các dự án hiện có với các thư viện JavaScript không?

Tôi cũng đã thử chuyển các thư viện JavaScript hiện có sang TypeScript và tôi nhận được rất nhiều lỗi thời gian biên dịch. Thật khó để loại bỏ tất cả các lỗi biên dịch thời gian. Tại sao TypeScript không thể chỉ tham chiếu các lớp JavaScript đó bằng tùy chọn "chặn lỗi và cảnh báo" như trình biên dịch Google Dart?

Trả lời

10

Có hai trường hợp ở đây:

  1. Bạn đang kêu gọi JavaScript từ nguyên cảo

Trong nguyên cảo Về vấn đề này hoạt động giống như các trình biên dịch đóng cửa google. Tất cả mọi thứ cần phải được khai báo trước khi nó có thể được sử dụng.

Vì vậy, nếu bạn có tệp JavaScript riêng biệt có biến Foo (lớp, mô-đun, số, v.v.), bạn cần phải thông báo cho TypeScript về nó. Trong trường hợp cơ bản nhất, bạn có thể làm điều gì đó như:

declare var Foo: any; 

Nếu không, bạn sẽ nhận được lỗi biên dịch.

Sau đó bạn có thể xây dựng trên tuyên bố này. Đối với bên thứ ba thư viện có một nguồn tài nguyên khổng lồ có sẵn tại https://github.com/DefinitelyTyped/DefinitelyTyped

  1. Sao chép JavaScript vào nguyên cảo

Một điều bổ sung mà có thể cung cấp biên dịch lỗi được sao chép trên của bạn JavaScript cho các tệp TypeScript của bạn. Tại đây TypeScript sẽ giúp bạn nắm bắt các lỗi loại như:

var x = '123'; 
var y = x.toPrecision(4); // Error x is string not a number 
Các vấn đề liên quan