可以像教程中所示更改名称:
TypeScript.Definitions()
.ForLoadedAssemblies()
.WithFormatter((type, f) => "I" + ((TypeLite.TsModels.TsClass)type).Name)
如何使用流畅的格式化程序更改模块名称?
答案 0 :(得分:6)
从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);#>
答案 1 :(得分:3)
现在有一个TypeScriptFluent.WithFormatter
的过载需要TsModuleNameFormatter
委托,因此您可以转换模块名称。例如,此代码将模块名称转换为命名空间的最后一部分(MyCompany.Business.Module1
- &gt; 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;
}
#>
答案 2 :(得分:1)
目前,无法使用流畅配置全局更改模块名称。
但是,您可以按类更改模块名称:
TypeScript.Definitions().For<MyClass>().ToModule("ModuleName")