Я застрял, пытаясь понять модульные вещи в машинописном файле с помощью AMD (я использую RequireJS); в jQuery.d.ts типизации Я скачал from here содержит следующие строки в конец файла:Головная боль загрузочного модуля для машиностроения
declare module "jquery" {
export = $;
}
declare var jQuery: JQueryStatic;
declare var $: JQueryStatic;
Я пытаюсь понять, что это самый правильный способ импортировать модуль Jquery.
До сих пор я использую
import $ = require('jquery');
это, кажется, правильно загрузить тип определения JQuery (я имею IntelliSense на объекте $) и в то же время он генерирует ЯШ:
define(["require", "jquery"], function(require, $) { ... }
, так что requireJs может правильно загрузить библиотеку, когда это необходимо.
1) Я делаю это правильно?
official docs говорит, что
При импорте модуля с помощью экспорта =, машинопись конкретного импорта пусть = требуется («модуль») должен быть использован для импорта модуля.
Но official lang spec говорит:
Импорт требует существуют декларации для обратной совместимости с более ранними версиями машинописи. ImportRequireDeclaration: import BindingIdentifier = require (StringLiteral);
2) Таким образом, идентификатор синтаксиса «импорт = требуется (строка) осуждается Должен ли я использовать вместо
import * as $ from 'jquery';
3) official lang spec также говорит: существуют
Экспорт заданий для обратная совместимость с более ранними версиями TypeScript. Назначение экспорта обозначает член модуля как объект, который будет экспортироваться вместо самого модуля. ExportAssignment: export = IdentifierReference
4) Так что синтаксис «export = $;» в jquery.d.ts устарел?
5) Если я хотел бы написать свой собственный «модуль», как его можно импортировать с помощью не относительного пути? Я не хотел бы использовать:
import * as mymodule from '../myfolder/mymodule';
Вместо этого я хотел бы использовать:
Есть ли способ сделать это? Как объявить модуль? Синтаксис «объявить модуль»? Синтаксис "export ="? Что-то другое?
6) Является ли я единственным, кто этот материал (и официальные документы) действительно запутан?
Спасибо, ребята.
Спасибо basarat! Кстати, я уже прочитал вашу книгу TypeScript Deep Dive, это отличная работа! – user2010955