我试图生成外部模块,而不是类型定义文件。我认为我需要做以下几点:
通过更改tt文件中的“输出扩展名”设置,我可以轻松地更改文件的扩展名。
我想不出如何将模块分割成不同的文件。
我不知道如何将导出关键字添加到每个接口。
发布于 2014-02-15 15:14:40
TypeLITE不支持生成多个文件。这个特性已经被几个用户请求了,但是我不知道从单个tt文件生成多个文件的简单方法。
如果不更改库的源代码( export ),就不能添加export关键字。这是非常具体的要求,所以我可能不会将它添加到库中。
发布于 2016-12-14 13:44:01
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://stackoverflow.com/questions/21791125
复制相似问题