控制Web Essential如何从.cs文件生成.d.ts文件

4
例如,“Guid”类型会被生成为“any”类型。
Uri类型会被生成为复杂类型:
{
    AbsolutePath: string;
    AbsoluteUri: string;
    Authority: string;
    DnsSafeHost: string;
    Fragment: string;
    Host: string;
    HostNameType: any;
    IsAbsoluteUri: boolean;
    IsDefaultPort: boolean;
    IsFile: boolean;
    IsLoopback: boolean;
    IsUnc: boolean;
    LocalPath: string;
    OriginalString: string;
    PathAndQuery: string;
    Port: number;
    Query: string;
    Scheme: string;
    Segments: string[];
    UserEscaped: boolean;
    UserInfo: string;
}

但实际上它被序列化为字符串。 因此,是否有一种方法可以告诉WebEssentials如何序列化属性类型,要么是全局的:
Guid -> string
Uri -> string

或者逐个属性地在本地进行设置:

[TypescriptType(typeof(string))]
Guid Id {get; set;};

当然,按项目或解决方案全局管理更佳。

我认为 TypescriptType 不是来自于 web essentials... - Chad Carisch
1个回答

1

看起来Web Essentials还不能做到这一点(尚未实现?)。我会建议你两件事:

  • 使用 TypeLITE(正如我们所做的那样)。
  • Fork它。查看 IntellisenseParser.cs并找到 GetClassName
    • (如果你有任何进展,请告诉我。;))

1
只是一个想法:在 IntellisenseParaser.cs 中有一个字典 _knownPrimitiveTypes。也许如果我们将 guid 添加到其中,并将其指向类型 string,那么会怎样呢?将 guid 作为 string 使用至少比使用 any 会稍微好一些。 - mortb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接