所以我有很多.Net库/类,我想为它们生成打字稿定义。打字稿很棒!我用简单的例子试了一下它确实很有效。我面临的唯一问题是我所拥有的组合无法使用它。以下是它的工作方式:
[TsClass]
public class Bob<T>
{
public MyTestEnum MyEnum { get; set; }
public string TestString { get; set; }
public string MyProperty { get; set; }
}
[TsEnum]
public enum MyTestEnum
{
One,
Two,
Three
}
问题是我不能在同一个地方使用泛型<T>
和Enum
的组合。为了使它工作,我需要取出其中任何一个。
这是我运行时给出的错误:
Error 17 Running transformation: System.NullReferenceException: Object reference not set to an instance of an object.
at TypeLite.TsModelBuilder.AddEnum(TsEnum tsEnum) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 98
at TypeLite.TsModelBuilder.Add(Type clrType, Boolean includeReferences) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 83
at TypeLite.TsModelBuilder.Add(Assembly assembly) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 108
at TypeLite.Net4.TypeScriptFluentExtensions.ForLoadedAssemblies(TypeScriptFluent ts) in C:\___PROJECTS___\TypeLITE\TypeLite.Net4\TypeScriptFluentExtensions.cs:line 16
at Microsoft.VisualStudio.TextTemplatingBDE10CD05B2CB4C5419DB79DDF5BA5BA06D673F55FF952439E5971D4E1F394085E3B6D99DC6D1E992221FAC06D0692FFD83BE54FE5AF6A567A491DF31AE26472.GeneratedTextTransformation.TransformText() ..\Scripts\TypeLite.Net4.tt
我没有对泛型做任何事情这一事实无关紧要(我只是想让它发挥作用!)
如果您知道某种解决方法,或者您可以引入另一种类似于它的能够执行此类操作的实用程序,我将非常感激。
我已经向开发人员报告了这个问题(希望Lukas很快就能解决这个问题):https://bitbucket.org/LukasKabrt/typelite/issue/41/issue-with-generics-and-enums