我想生成外部模块,而不是一个类型定义文件。我相信我需要执行以下操作:TypeLite生成外部模块?
- 将文件的扩展名更改为.ts而不是.d.ts。
- 每个模块生成一个文件。
- 在每个界面和枚举前添加关键词“导出”。
我可以非常容易地通过改变“输出扩展”在TT文件设置更改文件的扩展名。
我不知道如何将模块拆分为单独的文件。
我想不出如何将导出关键字添加到每个接口。
我想生成外部模块,而不是一个类型定义文件。我相信我需要执行以下操作:TypeLite生成外部模块?
我可以非常容易地通过改变“输出扩展”在TT文件设置更改文件的扩展名。
我不知道如何将模块拆分为单独的文件。
我想不出如何将导出关键字添加到每个接口。
TypeLITE不支持生成多个文件。此功能已被多个用户请求,但我不知道从单个tt文件生成多个文件的简单方法。
export
无需更改库的源代码即可添加关键字(TsGenerator.cs
)。这是非常具体的要求,所以我可能不会将它添加到库中。
TypeLite是一个很好的项目,但缺乏文档和示例,它是开源的,所以任何人都可以做出贡献并使其更好。
至于为每个类创建一个文件我解决它使用下面的代码。
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);
}
}
我说我需要我自己用的功能,并取得了[拉请求(https://bitbucket.org/LukasKabrt/typelite/pull-request/9/support-for-file-per -module)。 – DogSpots
我试过使用ToModules,我绝对可以使用一些示例/文档。 –