首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeLite生成外部模块?

TypeLite生成外部模块?
EN

Stack Overflow用户
提问于 2014-02-14 23:11:56
回答 2查看 1.5K关注 0票数 1

我试图生成外部模块,而不是类型定义文件。我认为我需要做以下几点:

  1. 将文件的扩展名更改为.ts而不是.d.ts。
  2. 每个模块生成一个文件。
  3. 在每个界面和枚举前面加上关键词“导出”。

通过更改tt文件中的“输出扩展名”设置,我可以轻松地更改文件的扩展名。

我想不出如何将模块分割成不同的文件。

我不知道如何将导出关键字添加到每个接口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-15 15:14:40

TypeLITE不支持生成多个文件。这个特性已经被几个用户请求了,但是我不知道从单个tt文件生成多个文件的简单方法。

如果不更改库的源代码( export ),就不能添加export关键字。这是非常具体的要求,所以我可能不会将它添加到库中。

票数 0
EN

Stack Overflow用户

发布于 2016-12-14 13:44:01

TypeLite是一个很好的项目,但是缺乏文档和示例,它是开源的,所以任何人都可以贡献并使它变得更好。

至于创建每个类的文件,我使用下面的代码进行了求解。

代码语言:javascript
复制
    private static void GenerateTypeScriptContracts(string assemblyFile, string outputPath)
    {
        // Clean TS Folder
        System.IO.DirectoryInfo di = new DirectoryInfo(outputPath);

        foreach (FileInfo file in di.GetFiles())
        {
            file.Delete();
        }
        // --

        var assembly = Assembly.LoadFrom(assemblyFile);

        // If you want a subset of classes from this assembly, filter them here
        var models = assembly.GetTypes();

        foreach (var model in models)
        {
            var generator = new TypeScriptFluent()
                .WithConvertor<Guid>(c => "string")
                .WithMemberFormatter((identifier) => Char.ToLower(identifier.Name[0]) + identifier.Name.Substring(1));

            generator.ModelBuilder.Add(model);

            // Generate TS interface definitions
            var tsClassDefinitions = generator.Generate(TsGeneratorOutput.Properties | TsGeneratorOutput.Fields);
            File.WriteAllText(Path.Combine(outputPath, "I" + model.FullName.Replace("ProjectName.DtoModels.", "") + ".ts"), tsClassDefinitions);
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21791125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档