1
我有下面的定義(我使用ImmutableJS):打字稿:通用不可改變的集合
declare module Immutable {
export module Record {
type IRecord<T> = T & TypedMap<T>;
interface TypedMap<T> extends Map<string, any> {
set(key: string, value: any): IRecord<T>
}
interface Factory<T> {
new(): IRecord<T>;
new (values: T): IRecord<T>;
(): IRecord<T>;
(values: T): IRecord<T>;
}
}
export interface Record<T> {
(defaultValues: T, name?: string): Record.Factory<T>;
}
export function Record<T>(
defaultValues: T, name?: string
): Record.Factory<T>;
}
declare interface IState extends Immutable.Map<string, any> {
router: Immutable.Map<string, any>;
sessions: Immutable.Map<gameId, Immutable.List<Immutable.Record<ISession>>>;
games: Immutable.Map<gameId, Immutable.Record<IGame>>
}
當我使用這種方式:
const state: IState = <IState>Map<string, any>({
router: Map<string, any>(),
sessions: Map<gameId, List<Record<ISession>>>({
1: List([10])
}),
games: Map<gameId, Record<IGame>>()
});
我沒有得到任何錯誤。我希望它抱怨這一部分:
sessions: Map<gameId, List<Record<ISession>>>({
1: List([10])
})
我加入了數10
成List<Record<ISession>>
任何爲什麼我沒有看到任何錯誤?
你提供的例子似乎並不完整 - 我看不到'Map'類/方法定義在哪裏。 – Fenton