【发布时间】:2017-09-26 17:14:17
【问题描述】:
我想定义一个泛型类的构造函数,它接受一个回调,该回调接受一个泛型类型的集合。虽然我可以在没有集合的情况下成功定义回调类型,但我收到集合错误。错误是“TS2371:参数初始化器只允许在函数或构造函数实现中”。
这给了我错误,但这是我想要的类型定义:
import {List} from "immutable";
export class BackendToUI<BM, UM> {
constructor(private backendToUI: (BM, List<UM>) => UM) {}
}
这可行,但不是我想要的类型:
export class BackendToUI<BM, UM> {
constructor(private backendToUI: (BM, UM) => UM) {}
}
我在UM[] 和Array<UM> 上遇到了同样的问题,所以问题不是由于不可变列表类型定义中的一些实现问题造成的。
提前定义类型也无济于事,虽然我没想到会这样:
import {List} from "immutable";
type backendToUIType<BM, UM> = (BM, List<UM>) => UM;
export class BackendToUI<BM, UM> {
constructor(private backendToUI: backendToUIType<BM, UM>) {}
}
有人知道如何声明这个回调类型吗?
【问题讨论】:
标签: typescript generics callback