我来自java背景。我在java中通过以下方式使用泛型:
class ApiResponse<T> {
T data;
T getData(){
return T;
}
}
我无法在JavaScript ES06中使用泛型。我想知道是否可以创建泛型类?
是一种动态类型语言,它没有任何泛型。您可以编写一个普通的函数/方法,它将适用于所有类型。
附言:如果要像在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没有严格的类型,所以不需要泛型,因为所有变量都可以随时分配给任何类型。