16

Właśnie uruchomiłem aktualizację w NuGet, aby zaktualizować moje pakiety. Później nie mogę już skompilować i otrzymuję powyższy błąd.Nie mogę znaleźć pliku definicji typu dla 'jquery'

Plik definicji jquery znajduje się w moim projekcie. Ale z jakiegoś powodu plik definicji bootstrap nie może go już znaleźć.

Minęło trochę czasu odkąd pracowałem nad tym projektem. Jestem prawie pewien, że przed aktualizacją miałem pliki definicji w zupełnie innym katalogu. Ale większość kodu i struktura plików została utworzona automatycznie przez pakiety Visual Studio NuGet.

Gdzie znajdują się te odsyłacze lub referencje, aby pliki definicji można znaleźć poprawnie? Jestem bardzo nowy maszynopis, więc jeśli można wyjaśnić szczegółowo ani podawać linków do dalszego czytania, to należy zauważyć,

code and error

file tree


Edit:

Odkryłem, że są one nazywane Triple-Slash Directives. Ale te strony nie mówią mi wystarczająco dużo, aby zrozumieć ten błąd.

Mówi mi, że do pakietów <reference types="..."/> należy używać pakietów @types, co do których uważam pliki .d.ts. Próbowałem zmienić nazwę jquery.d.ts na index.d.ts. I próbowałem włączając całą ścieżkę, taką jak ../jquery/jquery.d.ts. Żadne z nich nie działało.

Wreszcie znalazłem następującą linię w angular.d.ts:

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

skopiowane że w bootstrap index.d.ts i wydawało się, że aby naprawić ten błąd.

Ale to nie ma dla mnie sensu. Po pierwsze, próbuję połączyć się z plikiem definicji, a nie z plikiem TypeScript. Więc powinienem używać reference types, a nie reference path, zgodnie z powyższym artykułem. Ale reference types nie działa. Czego tu mi brakuje?

artykuł mówi też:

pomocą tych dyrektyw tylko kiedy jesteś authoringu się d.ts plik ręcznie.

Nie napisałem tych plików. Pochodzili z NuGet i wyglądają na generowane automatycznie. Dlaczego więc muszę to zmienić?

+2

mam ten sam problem po rozpoczęciu nowego projektu z MVC i maszynopisu. Na razie cofnąłem bootstrap DTS do wersji 0.9.0. W tej wersji definicja typu bootstrap wygląda jak definicja typów jquery (http://joxi.ru/MAjMJbEU4o36K2) –

+0

Eksperymentowałem z plikiem tsconfig.json i ustawiałem typRoot, ale bez powodzenia. https://www.typescriptlang.org/docs/handbook/tsconfig-json.html –

Odpowiedz

8

Pochodziły one z NuGet i wyglądają na generowane automatycznie.

Nie należy używać nuget do definicji typów. NPM jest drogą do zrobienia.

npm install @types/jquery -D 

a następnie można:

<reference types="jquery"/> 

zapraszamy do przyszłego

+11

"Nie używaj nugetu do definicji typów." NPM jest drogą do zrobienia. " - Tęsknię za dniami, kiedy TypeScript w Visual Studio "po prostu działał" i nie musiałem oddzielnie (i ręcznie) pobierać i instalować node, npm i 'typings'. Nie miałbym nic przeciwko, gdyby VS i toolchain TypeScript powiedziały mi, co robić - krzywa uczenia się znacznie się poprawiła od czasu wydania TypeScript 2.0, a doświadczenie staje się o wiele bardziej początkujące - wrogie. – Dai

+1

jest odrzucany, ponieważ sugestia może działać, ale nie odpowiada na pytanie "dlaczego mam to zmienić?" – joelmdev