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



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

  class ApiResponse<T> {
    T data;
    T getData(){
      return T;
    }
  }

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

JavaScript

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

附言:如果要像在Java中那样编码,请使用Typescript。

你觉得怎么样,埃隆马斯克?纯 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 ES06中使用Flow使用泛型类的示例:

export class ApiResponse<T> {
    data: ?T = null
}

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

https://www.typescriptlang.org/docs/handbook/generics.html

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

最新更新