Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 泛型类、约束和继承_Generics_Typescript_Typescript1.8 - Fatal编程技术网

Generics 泛型类、约束和继承

Generics 泛型类、约束和继承,generics,typescript,typescript1.8,Generics,Typescript,Typescript1.8,所以我对Typescript和泛型都相当陌生。我不确定我是否发现了Typescript的缺陷/限制,或者我缺少正确的模式来执行我想要的操作 我有一个小部件通用基类,它保存类型为T的值。例如,它可以是字符串,数字,等等 我希望有一个小部件子类,它将保存一个数组作为它的值,例如字符串[],日期[]等等 消费者代码示例: let w = new Widget<string>(); w.value = "abc"; let aw = new ArrayWidget<number[]&

所以我对Typescript和泛型都相当陌生。我不确定我是否发现了Typescript的缺陷/限制,或者我缺少正确的模式来执行我想要的操作

我有一个
小部件
通用基类,它保存类型为
T
的值。例如,它可以是
字符串
数字
,等等

我希望有一个
小部件
子类,它将保存一个
数组
作为它的值,例如
字符串[]
日期[]
等等

消费者代码示例:

let w = new Widget<string>();
w.value = "abc";

let aw = new ArrayWidget<number[]>();
aw.value = [1, 2, 3];
一切都很愉快(消费代码按预期工作)。谢谢

您可以这样做:

class ArrayWidget<T> extends Widget<Array<T>> {
    setValue() {
        let v = new Array<T>();
        this.value = v; // ok
    }
}

let aw = new ArrayWidget<string>();
aw.value = ["a", "b", "c"];
class ArrayWidget扩展小部件{
setValue(){
设v=新数组();
this.value=v;//确定
}
}
设aw=newarraywidget();
aw.value=[“a”、“b”、“c”];
它将使您不必再指定其他通用参数