У меня есть старое веб-приложение TypeScript, которое ссылается на все через Script Include на странице HTML, поэтому все объявляется в глобальном пространстве имен.В коде TypeScript используются модули TypeScript -
myclass.ts:
module MyModule {
export class MyClass {
}
}
someotherfile.ts
let myInstance = new MyModule.MyClass(); // globally available
Весь TypeScript записывается в один файл с использованием «outFile»в tsconfig.json, который может быть проблематичным с глобальными переменными и порядком написания вещей.
Я использую Visual Studio, в которую встроена поддержка TypeScript. При создании решения он создает TypeScript.
Я хочу обновить код с использованием современных модулей ES6:
myclass.ts:
export class MyClass {
}
someotherfile.ts
import { MyClass } from "./myclass";
let myInstance = new MyClass();
Сначала я думал, чтодля этой работы потребуется использовать стороннюю библиотеку, такую как веб-пакет или накопительный пакет, однако, глядя на JavaScript, сгенерированный компилятором TypeScript, похоже, что он должен просто работать, чтобы продолжать использовать «outFile» - все упаковано в модули, поэтомуне будет доступен в глобальном масштабе:
Object.defineProperty(exports, "__esModule", { value: true });
var MyClass = /** @class */ (function () { ..}());
exports.MyClass = MyClass;
Если бы я использовал накопительный пакет или веб-пакет, я был немного озадачен тем, как это будет работать с Visual Studio, работающей с собственным tsc process - большинство примеров похоже на VS Code, использующий компилятор машинописи npm.
В любом случае, я что-то упустил?Есть ли причина, по которой я не могу пропустить использование веб-пакета или накопительного пакета?