19

Tôi đang cố gắng để có được dự án angularjs đầu tiên của tôi để làm việc trong Visual Studio 2015. Làm việc tốt cho đến khi tôi cố gắng chuyển sang Typecript. Đã cài đặt các dự án DefinitelyTyped và nhận được nhiều thông báo lỗi.angularjs chắc chắn gõ studio trực quan 2015

Dưới đây là làm thế nào để tái tạo nó:

  • Tạo một ASP.NET trống 4.5.2 ứng dụng
  • NuGet AngularJS Lõi 1.4.4
  • NuGet AngularJS.TypeScript.DefinitelyTyped 4.1.1 (bao gồm jQuery 0.0.1)
  • Thêm tệp TypeScript trống
  • Thêm

    /// <reference path="typings/angularjs/angular.d.ts" /> 
    

    vào tệp đó.

  • đó là khi tôi nhận được 444 lỗi, bắt đầu với

    Error TS2411 Property 'find' of type '{ (selector: string): 
    IAugmentedJQuery; (element: any): IAugmentedJQuery; (obj: JQuery): 
    IAugment...' is not assignable to string index type 'HTMLElement'. 
    TypeScript Virtual Projects l:\M\eigene dateien\visual studio 
    2015\Projects\WebApplication3\WebApplication3\Scripts\typings 
    \angularjs\angular.d.ts 
    

Bất kỳ ý tưởng những gì tôi đang làm sai hoặc làm thế nào để làm việc xung quanh nó?

Trả lời

34

Tôi đã kiểm tra gói này và hầu hết các lỗi dường như đến từ tệp jquery.d.ts, trông cũ. Tệp đó vẫn sử dụng "bool" thay vì "boolean", đó là một thay đổi đột phá được thực hiện từ lâu.

Tôi đã sửa lỗi bằng cách thêm "jQuery.Typescript.DefinitelyTyped" vào dự án, đã nâng cấp tệp jQuery.d.ts lên phiên bản được phân tích cú pháp chính xác. Ngay sau khi tôi đã làm điều đó, tất cả các lỗi trình biên dịch đã biến mất.

Điều này có vẻ giống như một lỗi trong quá trình tạo gói nuget. Tôi sẽ xem xét việc mở một vấn đề về github.

Hy vọng điều đó phù hợp với bạn.

UPDATE: Tôi mở vấn đề này trong GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446

+1

Tuyệt vời! Làm việc tốt ngay bây giờ. ** Tôi nên nói rằng tôi đã phải thêm jQuery.Typescript.DefinitelyTyped trước một góc. ** Tôi đã tự hỏi về số phiên bản 0.0.1 của jQuery DefinitelyTyped, nhưng có rất nhiều điều cần tự hỏi về khi bắt đầu với Góc ... Dù sao, cảm ơn rất nhiều. Bây giờ làm việc với Angular thậm chí còn thú vị hơn. – Shuma

+0

Tôi đã gặp vấn đề tương tự cho sửa chữa này –

+0

Tôi đã có cùng một vấn đề này, chỉ cần nâng cấp nó. –

4

tôi đã cùng một vấn đề, nhưng giải pháp trên không làm việc ra cho tôi. jQuery.Typescript.DefinitelyTyped đã được cài đặt vì nó được yêu cầu bởi gói angularjs.TypeScript.DefinetlyTyped.

tôi cố định nó bằng cách:

  1. uninstall angularjs gói.
  2. gỡ cài đặt angularjs.TypeScript.DefinetlyTyped package.
  3. uninstall jQuery.Typescript.DefinitelyTyped
  4. cài đặt jQuery.Typescript.DefinitelyTyped
  5. cài đặt gói angularjs.TypeScript.DefinetlyTyped.
  6. cài đặt gói angularjs.

Cảm ơn Michael đã cung cấp gợi ý.

+0

Bạn đã cố gắng cập nhật nó chưa? Như Angularjs Type Script cài đặt nó nhưng phiên bản cũ. Tuy nhiên, giải pháp của bạn đang hoạt động :) –

+0

bạn phải cập nhật phiên bản mới nhất, vì lý do nào đó nuget đã cài đặt phiên bản 0.0.1 và phiên bản 2.8.8 khi studio trực quan tự động lấy các định nghĩa kiểu chữ, nó dường như không luôn luôn lấy mới nhất, hoặc chính xác. – kevindstanley

4

Vấn đề là do NuGet trong VS 2015, vì mặc định cài đặt phiên bản cũ nhất của phụ thuộc trong trường hợp này cài đặt gói jQuery DT cổ cho gói AngularJS DT, như được giải thích here.

tôi cố định này thậm chí còn đơn giản hơn bởi chỉ cần làm sau đây:

  1. Quản lý gói NuGet cho dự án
  2. Hiện gói chỉ được cài đặt
  3. Chọn jquery.TypeScript.DefinitelyTyped
  4. Upgrade
  5. Thưởng thức!
Các vấn đề liên quan