Подтвердить что ты не робот

Справочный файл javascript внутри typescript

Я хотел бы использовать функцию javascript внутри файла typescript. Как я могу ссылаться на файл javascript, содержащий эту функцию внутри файла typescript?

Я пробовал

<reference path="../libs/myjsfile.js" />

это приводит к ошибке при построении: Cannot resolve referenced file: ../libs/myjsfile.js

4b9b3361

Ответ 1

В то время как два ответа выше будут работать с небольшим или единственным переменным API, правильным ответом является запись файла объявления типа для вашего файла JavaScript.

Файл объявления типа для вашего примера будет иметь имя myjsfile.d.ts, где суффикс .d.ts - это то, что сообщает компилятору TypeScript, что он анализирует файл декларации. Если вы используете Visual Studio, ваш файл декларации будет распознаваться компилятором TypeScript, если он где-то (где угодно) в проекте, над которым вы работаете.

Файлы декларации хранят метаданные о переменных, функциях и объектах JavaScript, поэтому компилятор TypeScript может выполнять свою работу. Если ваш файл JavaScript является библиотекой или каркасом, используемым в обычном режиме, DefinitelyTyped определенно является местом для поиска файла определения, который вам нужен.

Если ваш JavaScript является вашей собственной работой или менее известен, вам придется написать свой собственный файл объявления типа. См. Раздел "Написание файлов .d.ts" в Справочник TypeScript.

Если файл декларации имен звучит пугающе, не беспокойтесь - их гораздо проще писать, чем программ. Кроме того, помните, что вам не нужно указывать все метаданные для вашего файла JavaScript, просто необходимые функции.

Сообщите мне, нужна ли вам помощь!

Ответ 2

Вам просто нужно сообщить компилятору, что метод существует вне typescript:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void;

Убедитесь, что веб-сайт загружает все необходимые файлы, обычные файлы js и файлы js, сгенерированные компилятором typescript

Ответ 3

это приводит к ошибке при построении, например: Не удается разрешить ссылочный файл:../libs/myjsfile.js

Теги ссылочных файлов предназначены для TypeScript не для JavaScript. Вы загрузите JavaScript с помощью тега script на своей странице (или что-то вроде requirejs).

Чтобы использовать JavaScript из TypeScript, вы должны объявить API javascript, который хотите использовать для потребления TypeScript (как указывал AKR).

Ответ 4

Вы можете увидеть последнюю версию документа TypeScript в TypeScript Справочник по GitHub:

Также я рекомендую вам утилиту tsd для поиска и установки файлов определения TypeScript непосредственно из сообщества, управляемого DefinitelyTyped репозиторий. Этот репозиторий содержит файлы определения *.d.ts для самых популярных библиотек javascript.