名称可以更改,如本教程所示:
TypeScript.Definitions()
.ForLoadedAssemblies()
.WithFormatter((type, f) => "I" + ((TypeLite.TsModels.TsClass)type).Name)
如何使用fluent格式化程序更改模块名称?
发布于 2014-03-07 09:40:06
现在,不可能使用fluent配置全局更改模块名称。
但是,您可以在每个类的基础上更改模块名称:
TypeScript.Definitions().For<MyClass>().ToModule("ModuleName")
发布于 2015-09-16 02:32:50
在TypeLite版本1.4.0中,以下内容可以很好地更改模块名称:
<# var ts = TypeScript.Definitions()
.WithModuleNameFormatter((module) => "my.module.name");#>
或者,您也可以使用已经设置为模块名的内容来进行更多的控制,例如:
<# var ts = TypeScript.Definitions()
.WithModuleNameFormatter((module) => "I" + ((TypeLite.TsModels.TsModule)module).Name);#>
发布于 2015-01-15 13:07:29
现在有一个TypeScriptFluent.WithFormatter
的There,它接受TsModuleNameFormatter
委托,这样您就可以转换模块名称了。例如,此代码将模块名称转换为命名空间的最后一部分(MyCompany.Business.Module1
-> Module1
):
<#
var ts = TypeScript.Definitions()
.WithFormatter((TsModuleNameFormatter)FormatModuleName)
#>
<#+
string FormatModuleName(string module) {
var parts = module.Split(new []{'.'});
var newModule = parts[parts.Length - 1];
return newModule;
}
#>
更新:
在TypeLite 1.1.2.0的最新版本中,API略有变化,因此前面的示例如下所示:
<#
var ts = TypeScript.Definitions().WithModuleNameFormatter((TsModuleNameFormatter)FormatModuleName)
#>
<#+
string FormatModuleName(TsModel module) {
var parts = module.Name.Split(new []{'.'});
var newName = parts[parts.Length - 1];
return newName;
}
#>
https://stackoverflow.com/questions/22231362
复制相似问题