16

Tôi vừa chạy bản cập nhật trong NuGet để cập nhật các gói của mình. Sau đó, tôi không còn có thể biên dịch và tôi nhận được lỗi trên.Không thể tìm thấy tệp định nghĩa kiểu cho 'jquery'

Tệp định nghĩa jquery nằm trong dự án của tôi. Nhưng vì lý do nào đó, tệp định nghĩa bootstrap không thể tìm thấy nó nữa.

Đã một thời gian kể từ khi tôi làm việc trong dự án này. Tôi khá chắc chắn rằng tôi đã có các tập tin định nghĩa của tôi trong một thư mục hoàn toàn khác nhau trước khi cập nhật. Nhưng hầu hết các mã và cấu trúc tệp đã được tạo tự động bởi gói Visual Studio NuGet.

Các liên kết hoặc tham chiếu này nằm ở đâu để các tệp định nghĩa có thể được tìm thấy chính xác? Tôi rất mới để nguyên cảo, vì vậy nếu bạn có thể giải thích chi tiết hoặc cung cấp liên kết để đọc thêm, nó sẽ được đánh giá

code and error

file tree


Edit:

Tôi đã phát hiện ra rằng chúng được gọi là Triple-Slash Directives. Nhưng các trang đó không cho tôi biết đủ để hiểu lỗi này.

Nó cho tôi biết rằng <reference types="..."/> nên được sử dụng cho @types gói đó là những gì tôi tin rằng .d.ts tệp là. Tôi đã thử thay đổi tên của jquery.d.ts thành index.d.ts. Và tôi đã thử bao gồm toàn bộ đường dẫn như ../jquery/jquery.d.ts. Cả hai đều không hiệu quả.

Cuối cùng, tôi thấy dòng sau trong angular.d.ts:

/// <reference path="../jquery/jquery.d.ts" /> 

tôi sao chép đó vào bootstrap index.d.ts và đó dường như khắc phục lỗi.

Nhưng điều này không có ý nghĩa với tôi. Trước tiên, tôi đang cố gắng liên kết đến tệp định nghĩa, không phải tệp TypeScript. Vì vậy, tôi nên sử dụng reference types, không phải reference path, theo bài viết ở trên. Nhưng reference types không hoạt động. Tôi đang thiếu gì ở đây?

Bài báo cũng nói:

Sử dụng các chỉ thị chỉ khi bạn đang authoring một file d.ts bằng tay.

Tôi không viết những tệp này. Họ đến từ NuGet và tìm cách tự động được tạo ra. Vậy tại sao tôi cần phải thay đổi điều này?

+2

Tôi có cùng một vấn đề sau khi bắt đầu dự án mới với .net MVC và nguyên cảo. Bây giờ tôi đã quay trở lại bootstrap DTS lên phiên bản 0.9.0. Trong phiên bản này, các kiểu tấn công bootstrap trông giống như các định nghĩa kiểu jquery (http://joxi.ru/MAjMJbEU4o36K2) –

+0

Tôi đã thử nghiệm với một tệp tsconfig.json và thiết lập typeRoot nhưng không có may mắn. https://www.typescriptlang.org/docs/handbook/tsconfig-json.html –

Trả lời

8

Chúng đến từ NuGet và trông được tạo tự động.

Không sử dụng nuget cho định nghĩa loại. NPM là con đường để đi.

npm install @types/jquery -D 

Và sau đó bạn có thể:

<reference types="jquery"/> 

hoan nghênh đối với tương lai

+11

"Đừng dùng nuget cho định nghĩa kiểu. NPM là con đường để đi." - Tôi nhớ những ngày khi TypeScript trong Visual Studio "chỉ hoạt động" và tôi không cần phải riêng rẽ (và thủ công) tải xuống và cài đặt nút, npm và 'typings'. Tôi sẽ không bận tâm lắm nếu VS và chuỗi công cụ TypeScript sẽ cho tôi biết phải làm gì - đường cong học tập đã tăng đáng kể kể từ khi TypeScript 2.0 được phát hành và kinh nghiệm đang trở nên xa lạ hơn rất nhiều. – Dai

+1

bị từ chối vì, trong khi đề xuất có thể hoạt động, nó không thực sự trả lời câu hỏi "Vậy tại sao tôi cần phải thay đổi điều này?" – joelmdev

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