0
我想定义一个泛型类的构造函数,它需要一个回调,它需要一个泛型类型的集合。尽管我可以成功定义没有集合的回调类型,但是我收到集合的错误。错误是“TS2371:只有在函数或构造函数实现中才允许使用参数初始化程序”。Typescript泛型回调类型提示与泛型集合
这给我的错误,但它是类型定义我想:
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>) {}
}
任何人都知道如何声明此回调类型?
感谢,愚蠢的错误。这工作。 – Malina
另外,出于好奇,为什么Typescript在没有参数名称和集合的情况下编译定义?具体来说,为什么会这样编译:'constructor(private backendToUI:(BM,UM)=> UM){}'? – Malina
...回答我自己的问题......这是因为它将BM和UM解释为参数名称而不是类型。 D'哦! – Malina