使用选项UseModules = true, DiscardNamespacesWhenUsingModules = true
时,我需要删除ReinforcedTypings生成的import语句
所以我需要我的TypeScript看起来像这样
export interface IMyTreeNode extends kendo.data.Node { ... }
其中 kendo.data.Node 是第三方js / TypeScript库-但可以在我的项目中解决。
过去,我可以通过以下方式使用ReinforcedTypings来做到这一点:相当巧妙地使用可用的选项,因为kendo.data.Node
仅在TypeScript中,而不在C#中。
[TsInterface(Name = "kendo.data.Node", AutoI = false)]
interface KendoDataNode { }
[TsInterface]
public class MyTreeNode: KendoDataNode { ... }
这很好。并产生此输出
export interface IMyTreeNode extends kendo.data.Node { ... }
我现在的问题是我必须更改配置才能使用这样的模块:
TsGlobal(UseModules = true, DiscardNamespacesWhenUsingModules = true)
现在使用此配置,ReinforcedTypings在TypeScript输出中生成了额外的一行:它不会编译。而且我找不到摆脱它的方法。
import { kendo.data.Node } from '../../kendo.data.Node';
export interface IMyTreeNode extends kendo.data.Node { ... }
我只需要删除import语句或制作一个有效的语句。没有它,它就完美地工作。
我愿意以任何方式使用Fluent配置-但我还看不到任何实现此目的的方式。
答案 0 :(得分:1)
您能说出必须的样子吗?
基本上,您可以将[TsImport]
上的IMyTreeNode
与ImportTarget = "*"
一起使用。它必须防止RT生成精确的导入。
顺便说一句,最好使用[TsInterface(Name = "Node", AutoI = false, Namespace="kendo.data")]
而不是将namespece包含在类型名中。