我有一个很短的问题,我试着用打字机写两个类:
export class ServiceResponse { }
export class ServiceResponse<T> extends ServiceResponse {}
但根据typescript,这些是重复的标识符。是否可以在TyrScript中使用泛型类型参数相同的名称?这是以前有人解决过的问题吗?我来自一个
C#
背景,在那里这种模式相当普遍。谢谢!
最佳答案
阿列克塞回答了以上评论中的问题,只是想提供一个真实的答案,有更多的背景,以备将来参考。
这是意料之中的,因为在编译成JavaScript时,Type Script类型注释(包括泛型类型参数<T>
此处)被剥离,并且最终得到两个同名类,因此重复标识符错误。
为了定义同一类的泛型和非泛型版本,可以为泛型类型参数指定默认值:
export class ServiceResponse<T = void> {
}