Поиск…


Вступление

Хотя в некоторых существующих JavaScript-библиотеках есть файлы определения типов , их много.

TypeScript предлагает пару шаблонов для обработки отсутствующих объявлений.

Объявить любую глобальную

Иногда проще просто объявить глобальный тип any , особенно в простых проектах.

Если у jQuery не было объявлений типа ( оно есть ), вы могли бы поставить

declare var $: any;

Теперь любое использование $ будет напечатано any .

Создайте модуль, который экспортирует по умолчанию любой

Для более сложных проектов или в случаях, когда вы намереваетесь постепенно вводить зависимость, может быть проще создать модуль.

Использование JQuery (хотя у него есть доступные типы ) в качестве примера:

// place in jquery.d.ts
declare let $: any;
export default $;

И затем в любом файле вашего проекта вы можете импортировать это определение с помощью:

// some other .ts file
import $ from "jquery";

После этого импорта $ будет набираться как any .

Если в библиотеке имеется несколько переменных верхнего уровня, вместо этого экспортируйте и импортируйте по имени:

// place in jquery.d.ts
declare module "jquery" {
   let $: any;
   let jQuery: any;

   export { $ };
   export { jQuery };
}

Затем вы можете импортировать и использовать оба имени:

// some other .ts file
import {$, jQuery} from "jquery";

$.doThing();
jQuery.doOtherThing();

Использовать окружающий модуль

Если вы просто хотите указать намерение импорта (так что вы не хотите объявлять глобальное), но не хотите беспокоиться о каких-либо явных определениях, вы можете импортировать окружающий модуль.

// in a declarations file (like declarations.d.ts)
declare module "jquery";    // note that there are no defined exports

Затем вы можете импортировать из окружающего модуля.

// some other .ts file
import {$, jQuery} from "jquery";

Все, что импортировано из объявленного модуля (например, $ и jQuery ) выше, будет иметь тип any



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow