Есть ли способ, которым я могу иметь класс TypeScript, экспортированный как модуль UMD со строгим режимом? «Gotcha» - это часть строгого режима.TypeScript Class экспортируется как модуль UMD со строгим режимом
Мой код выглядит примерно так:
class Foo {
bar(): Foo.Bam {}
}
namespace Foo {
export function boom() {}
export interface Bam {}
}
export = Foo;
В другом месте модуль может быть использован как:
import * as Foo from 'my-module';
var foo = new Foo();
foo.bar()
Foo.boom();
interface Kaboom extends Foo.Bam {}
Я хочу строгий режим, чтобы применить ко всем Foo
, но не весь сценарий, так как это может быть связано с другими неизвестными сценариями.
Файл определения также создается.
Я могу просто обернуть все в закрытии во время процесса сборки, но сначала я ищу предварительное компиляционное решение.
Edit:
Добавлено более подробную информацию на мой вопрос, только в случае, если кто-то находит путь в будущее.
В итоге я просто добавил простое исправление после компиляции. После создания модуля UMD. Я заменить эту строку:
})(["require", "exports"], function (require, exports) {
С этой линией:
})(["require", "exports"], function (require, exports) {"use strict";
Теперь все внутри модуля является строгим, и сам сценарий не является.
Это то, что вы ищете https://pastee.org/kzp82? (Я поставил код на http://www.typescriptlang.org/Playground) –
Нет, его нужно экспортировать с помощью '--module umd', спасибо, хотя :) – thoughtrepo