16

Я только что запустил обновление в NuGet для обновления моих пакетов. Впоследствии я больше не могу скомпилировать, и я получаю вышеуказанную ошибку.Не удается найти файл определения типа для 'jquery'

Файл определения jquery находится в моем проекте. Но по какой-то причине файл определения начальной загрузки больше не может его найти.

Прошло некоторое время с тех пор, как я работал над этим проектом. Я уверен, что перед обновлением у меня были файлы определения в совершенно другом каталоге. Но большая часть кода и файловой структуры была создана автоматически пакетами Visual Studio NuGet.

Где эти ссылки или ссылки расположены так, что файлы определения могут быть найдены правильно? Я новичок в машинописном, так что если вы можете объяснить в деталях или предоставить ссылки для дальнейшего чтения, было бы оценено

code and error

file tree


Edit:

Я обнаружил, что они называются Triple-Slash Directives. Но эти страницы не говорят мне достаточно, чтобы понять эту ошибку.

Это говорит мне, что <reference types="..."/> следует использовать для @types пакетов, которые, как я считаю, являются .d.ts файлами. Я попытался изменить имя jquery.d.ts на index.d.ts. И я попытался включить весь путь, такой как ../jquery/jquery.d.ts. Ни один из них не работал.

Наконец, я нашел следующую строку в angular.d.ts:

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

Я скопировал, что в загрузчике index.d.ts и что, казалось, чтобы исправить ошибку.

Но для меня это не имеет смысла. Во-первых, я пытаюсь связать файл определения, а не файл TypeScript. Поэтому я должен использовать reference types, а не reference path, в соответствии с вышеприведенной статьей. Но reference types не работает. Что мне здесь не хватает?

В статье также говорится:

Используйте эти указания только тогда, когда вы авторинг d.ts файл вручную.

Я не писал эти файлы. Они пришли из NuGet и выглядят автоматически генерируемыми. Так зачем мне это менять?

+2

у меня та же проблема, после запуска нового проекта с .net MVC и машинописи. На данный момент я вернул обратно бутстрап DTS в версию 0.9.0. В этой версии определение типа bootstrap выглядит как определение типов jquery (http://joxi.ru/MAjMJbEU4o36K2) –

+0

Я экспериментировал с файлом tsconfig.json и устанавливал типRoot, но не повезло. https://www.typescriptlang.org/docs/handbook/tsconfig-json.html –

ответ

8

Они пришли из NuGet и будут автоматически сгенерированы.

Не используйте nuget для определения типов. NPM - это путь.

npm install @types/jquery -D 

И тогда вы можете:

<reference types="jquery"/> 

Добро пожаловать в будущее

+11

«Не используйте nuget для определения типов. NPM - это путь». - Я пропускаю дни, когда TypeScript в Visual Studio «просто работал», и мне не нужно было отдельно (и вручную) загружать и устанавливать узел, npm и 'typings'. Я бы не прочь так много, если бы VS и инструментарий TypeScript скажут мне, что делать - кривая обучения значительно улучшилась, так как был выпущен TypeScript 2.0, и опыт становится намного более новичком-враждебным. – Dai

+1

downvoted, потому что, хотя предложение может работать, оно на самом деле не отвечает на вопрос «Так зачем мне это менять?». – joelmdev

Смежные вопросы