在javascript ES06中创建泛型类和函数

在javascript ES06中创建泛型类和函数,javascript,ecmascript-6,Javascript,Ecmascript 6,我来自java背景。我以以下方式在java中使用泛型: class ApiResponse<T> { T data; T getData(){ return T; } } 类响应{ T数据; T getData(){ 返回T; } } 我无法在javascript ES06中使用泛型。我想知道是否可以创建泛型类?JavaScript是一种动态类型化语言,没有任何泛型。您可以编写一个普通的函数/方法,它适用于所有类型 另外,如果想像J

我来自java背景。我以以下方式在java中使用泛型:

  class ApiResponse<T> {

    T data;

    T getData(){
      return T;
    }
  }
类响应{
T数据;
T getData(){
返回T;
}
}

我无法在javascript ES06中使用泛型。我想知道是否可以创建泛型类?

JavaScript是一种动态类型化语言,没有任何泛型。您可以编写一个普通的函数/方法,它适用于所有类型


另外,如果想像Java中那样编写代码,请使用Typescript。

Javascript没有严格的类型,因此不需要泛型,因为所有变量都可以在任何时候分配给任何类型。

您可以使用Typescript来实现此目的


Javascript本身不提供任何语法来支持泛型类。但也可以使用:

流动

打字稿

让我展示一个在javascript ES06中使用流的泛型类的示例:

export class ApiResponse<T> {

    data: ?T = null
}
导出类响应{
数据:?T=null
}

你觉得这个怎么样,埃隆·马斯克?纯js,无类型流/类型脚本

class BaseClass {
    hello = function () {
        console.log('hello!');
    }
}

function GenericClass(T, Base) {
    return class extends Base {
        field = new T();
    }
}

class DerivedFromGeneric extends GenericClass(String, BaseClass) {
    greet = function() {
        this.hello();
        console.log('greetings ', this.field);
    }
}

let i = new DerivedFromGeneric();

这样的语法在javascript中不存在-所以-不存在(因为javascript不是严格类型的,所以没有什么意义)(如果您使用严格类型的javascript,请尝试使用“typescript”)。。。或者haxe目前我正在使用“Flow”进行类型检查。我能用流水作业的打字脚本吗?@rahullastogi我不这么认为。我没有使用Flow,但我认为两者都是竞争对手,您可以使用其中一种。尝试使用“Flow”进行类型检查支持。我喜欢这个!为什么不呢?当字段是数组时,它不起作用。不确定在JS中哪里找到了数组,因为这是typescript的语法。派生自Generic的类扩展了GenericClass(数组、基类)的工作方式