我遇到了一个基于我传入的类型定义泛型类型的问题.
我有一段代码巫婆"激活"一个类,我无法从类型参数中获取类型信息,所以我在类对象(而不是实例)中传递.然而,这打破了类型推断.
这是我正在尝试做的简化示例:
interface IActivatable {
id: number;
name:string;
}
class ClassA implements IActivatable {
public id: number;
public name: string;
public address:string;
}
class ClassB implements IActivatable {
public id: number;
public name: string;
public age: number;
}
function activator<T extends IActivatable>(type:T): T {
// do stuff to return new instance of T.
}
var classA:ClassA = activator(ClassA);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我能够提出的唯一解决方案是将type参数类型更改为any并手动设置泛型类型(如下所示).然而,这似乎很长,有另一种方法来实现这一目标.
function activator<T extends IActivatable>(type:any): T {
// do stuff to return new instance of T.
} …Run Code Online (Sandbox Code Playgroud) 使用ReSharper + StyleCop在C#中工作时,我可以自动生成方法的基本文档注释,如下所示:
/// <summary>
/// The login.
/// </summary>
/// <param name="returnUrl">
/// The return Url.
/// </param>
/// <returns>
/// The <see cref="Task"/>.
/// </returns>
Run Code Online (Sandbox Code Playgroud)
然后,我可以添加额外的细节.
TypeScipt是否有类似的工具,它将生成JSDoc注释部分,以便我可以简单地填写详细信息?