Jon*_*lis 7 generics typescript
我有一个非常简短的问题,我正在尝试在打字稿中创建两个类:
export class ServiceResponse { }
export class ServiceResponse<T> extends ServiceResponse {}
Run Code Online (Sandbox Code Playgroud)
但根据打字稿,这些是重复的标识符.是否可以在typescript中使用与泛型类型参数相同的名称?这是以前有人解决过的问题吗?我来自一个C#背景,这种模式很常见.
谢谢!
Aleksey 在上面的评论中回答了问题,但只是想提供一个实际的答案,并提供更多背景信息以供将来参考
这是预料之中的,因为 Typescript 类型注释(包括<T>此处的泛型类型参数)在编译为 JavaScript 时会被删除,并且最终会得到两个具有相同名称的类,因此会出现重复标识符错误。
为了定义同一类的泛型和非泛型版本,您可以为泛型类型参数指定默认值:
export class ServiceResponse<T = void> {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |