当WebEssentials生成Typescript Intellisense文件时,如何配置模块名称?

时间:2014-08-14 16:23:54

标签: typescript web-essentials

我刚刚发现,通过WebEssentials 2013,我可以右键单击CS文件并选择Web Essentials->创建Typescript Intellisense文件。

目前,所有生成的接口都放在模块“server”中。我怎么能改变这个?

1 个答案:

答案 0 :(得分:4)

这是一个很好的问题(我不知道答案)所以我搜索了Web Essentials的代码,是的,这是可能的!您需要执行以下操作:

使用以下代码创建一个新的.cs文件(不要在您生成定义的同一文件中执行此操作,否则会引发错误)。

[System.AttributeUsage(AttributeTargets.Class)]
sealed class TypeScriptModuleAttribute : Attribute
{
    private readonly string moduleName;
    public TypeScriptModuleAttribute(string moduleName)
    {
        this.moduleName = moduleName;
    }
}

现在将它应用于一个类:

[TypeScriptModule("foo")]
public class TestClass
{
    <snip>
}

它将生成如下内容:

declare module foo {
    interface TestClass {
    }
}

如果您有兴趣,可以在此处找到Web Essentials执行此操作的代码:link以及在此处编写文件的代码:link2