我愿做这样的事情:有没有什么办法在类之间共享泛型类型变量?
class B<X> {
b_stuff: X;
// etc...
}
// X is the same type as above
class A<X, Y> {
a1_stuff: Y;
a2_stuff: X;
// etc...
}
是否有任何的方式来分享这样的类之间类型变量?我认为嵌套类将是这样做的方式,但显然TypeScript不支持这一点。
我愿做这样的事情:有没有什么办法在类之间共享泛型类型变量?
class B<X> {
b_stuff: X;
// etc...
}
// X is the same type as above
class A<X, Y> {
a1_stuff: Y;
a2_stuff: X;
// etc...
}
是否有任何的方式来分享这样的类之间类型变量?我认为嵌套类将是这样做的方式,但显然TypeScript不支持这一点。
有没有办法做到这一点;也没有任何意义。可能有许多A
和B
每个实例都使用不同的类型参数。尝试从你正在编写的代码的角度来问你一个不同的问题。看起来你有一个XY问题(http://xyproblem.info/)。
我不知道如果这能帮助你,但它可能是你的问题可以通过传承来解决:
public class List<E>{
....
}
public class ArrayList<E> implements List{
}
现在
,当你做一个列表和一个ArrayList的是,名单中他们需要是同一类型。例如:
public List<String> myList = new ArrayList(true, false, true, true)
您将不被允许创建该列表,因为它们需要是相同类型或至少实现相同类型。 (我说实施相同的类型,因为如果你列出了那么你可以有一个ArrayList,一个LinkedList和其他一堆)希望这有助于
这里有一个想法:你可以有一个工厂方法A
创建绑定到同X
为A
的B
一个实例:
class B<X> {
b_stuff: X;
}
class A<X, Y> {
a1_stuff: Y;
a2_stuff: X;
createB(...args: any[]): X {
// create B using args
}
}
它没有任何意义,因为它是为'X'可以有很多的东西,它不设置。在内部类中,包含类和嵌套类之间存在关系。也许你可以更多地解释你的情况,这样会更有意义。 –