Javascript 流数组泛型与自身不兼容?
我正在尝试创建一个带有流类型检查的es6类:Javascript 流数组泛型与自身不兼容?,javascript,ecmascript-6,flowtype,Javascript,Ecmascript 6,Flowtype,我正在尝试创建一个带有流类型检查的es6类: /* @flow */ export default class ListHolder<Tv> { getList = (): Array<Tv> => { return []; }; iterateOverList = (): mixed => { return this.getList().map((item: mixed, index: number) => {
/* @flow */
export default class ListHolder<Tv> {
getList = (): Array<Tv> => {
return [];
};
iterateOverList = (): mixed => {
return this.getList().map((item: mixed, index: number) => {
// no-op
return null;
});
};
}
问题是我一直得到一个流错误,即Tv[1]与Tv[1]不兼容。引用行getList=:Array=>{。有人能帮我理解这个错误吗
如果我注释掉映射调用,它就会解决问题,但除此之外,我还没有取得多大进展,错误消息也没有特别的帮助
谢谢,看起来像是您创建了一个类,但是为一个类分配方法并不是使用赋值运算符完成的。=和箭头函数=> 我想这更符合你的要求。->
/* @flow */
export default class ListHolder<Tv> {
getList (): Array<Tv> {
return [];
};
iterateOverList (): mixed {
return this.getList().map((item: mixed, index: number) => {
// no-op
return null;
});
};
}
谢谢!我以为我快疯了。所以问题是,因为它们不是方法,它们没有继承泛型,所以我知道我做错了什么。奇怪的b/c我觉得我看到了JS中其他地方用作速记的箭头函数赋值-一定是我的错!再次感谢你!奇怪的b/c我觉得我看到了箭头函数赋值人t在JS中的其他地方用作缩写,但在这里定义一个类,{}中的所有内容都是一个类定义。如果说您在构造函数中创建方法,您可能会看到类似这样的内容。func=>{}。这里不是类定义,而是代码执行点。允许赋值。@托马斯:您看到的是一个实验性功能,称为类字段:。它是在构造函数内定义属性而不必定义构造函数的缩写。