配置增强型以将类导出为AMD模块

时间:2019-01-29 10:12:36

标签: reinforced-typings

我在项目中使用TypeScript和RequireJS。 RequireJS要求Typescript以特殊方式(export = )导出模块以对传统的AMD工作流程进行建模:

class Foo {
...
}
export = Foo

增强型项目帮助我将C#类转换为TypeScript模块,并得到类似的输出

module Module1 {
   export class Foo {
   ...
   }
}

我在强化键入文档中找不到如何在生成的文件末尾获得export = Module1指令。

可能我应该选择自定义ClassCodeGenerator,但是我找不到如何指示它追加的结果模块,例如RtRaw代码。

1 个答案:

答案 0 :(得分:0)

在1.5.2版中,您可以为此使用访问者覆盖:

using Reinforced.Typings.Visitors.TypeScript;
class AmdExportVisitor : TypeScriptExportVisitor
        {
            public AmdExportVisitor(TextWriter writer, ExportContext exportContext) : base(writer, exportContext)
            {
            }


            public override void VisitFile(ExportedFile file)
            {
                base.VisitFile(file);
                var ns = file.Namespaces.FirstOrDefault();
                if (ns != null)
                {
                    WriteLines($@"
export = {ns.Name};

");
                }
            }
        }

然后

confBuilder.Global(a => a.UseVisitor<AmdExportVisitor>());

您将获得理想的结果。