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