长期使用C ++的人深入研究TypeScript。这是我从库中导入的类的基本设置:
export abstract class A<T> {
...
// Common functionality
}
export class B extends A<B> {
...
}
export class C extends A<C> {
...
}
export class D extends A<D> {
}
因此,基本上B
,C
和D
拥有自己的公共API,但是它们共享A
的通用API和实现。
现在,我想创建自己的X
扩展名A
,并具有更多通用功能,并创建共享的BX
,CX
和DX
这项新功能也是如此。
在C ++中,您可以执行以下操作:
<template T>
class X : public T {
...
// Common functionality
};
class BX : public X<B> {
...
}
我正在尝试在TypeScript中找出正确的语法。做类似的事情:
class X<T> extends T {
}
Typescript中的给出错误。另外,我想添加一个约束,即T在某个时候扩展A。
有人可以为我提供一些见识吗?