Javascript 如何向具有可索引类型的接口添加属性

Javascript 如何向具有可索引类型的接口添加属性,javascript,typescript,Javascript,Typescript,我有一个这样声明的接口: export interface ITvChannelState { [key: string]: IChannel; } 我希望它看起来像这样: export interface ITvChannelState { [key: string]: IChannel; isLoaded: boolean; } 之所以看起来像这样是因为我的状态是基于返回TvChannel数组的serverResponse构建的。通道没有明确定义,因此我不能使用字符串文字或枚

我有一个这样声明的接口:

export interface ITvChannelState {
  [key: string]: IChannel;
}
我希望它看起来像这样:

export interface ITvChannelState {
  [key: string]: IChannel;
  isLoaded: boolean;
}
之所以看起来像这样是因为我的状态是基于返回TvChannel数组的serverResponse构建的。通道没有明确定义,因此我不能使用字符串文字或枚举来列出它们。服务器可以返回新通道,并且我希望正确键入它们。我还希望状态包含其他不是compute属性的属性

这里是typescript在使用第二个代码段中提供的syntaxt时生成的错误:

类型“false”不可分配给类型“IChannel”

tv channel.d.ts(4,3):预期类型来自此索引签名


如果您有可索引类型,则所有其他属性都必须是相同类型(或可扩展此类型),因此类似这样的内容:导出接口ITvChannelState{[key:string]:IChannel | boolean;isLoaded:boolean;}如果您有可索引类型,则所有其他属性都必须是相同类型(或可扩展此类型)类似这样的东西:导出接口ITvChannelState{[key:string]:IChannel | boolean;isLoaded:boolean;}