与索引不同的Typescript接口特定键

与索引不同的Typescript接口特定键,typescript,Typescript,我有一个几乎包含所有字符串的对象,除了几个键(已知),它们是string[] Interface MostlyStrings{ [key:string]:string, specificKey1:string[], specificKey2:string[], } 这不起作用,因为string[]与索引不匹配 我希望避免使用[key:string]:string | string[],因为这样我就必须在所有代码中指定string和array之间的值 除了一些已知的键之外,所有

我有一个几乎包含所有字符串的对象,除了几个键(已知),它们是
string[]

Interface MostlyStrings{
   [key:string]:string,
   specificKey1:string[],
   specificKey2:string[],
}
这不起作用,因为
string[]
与索引不匹配

我希望避免使用
[key:string]:string | string[]
,因为这样我就必须在所有代码中指定string和array之间的值

除了一些已知的键之外,所有的东西都是
字符串

在过去几年中,TS回购协议一直在跟踪这一点。目前,这是不可能做到的

通过使用交叉点类型,可以实现类似的效果:

type MostlyStrings = {
   [key: string]: string;
} & {
   specificKey1: string[];
   specificKey2: string[];
};
您将无法构造此类型的对象文字,但它至少会正确地执行类型检查/自动完成。实际上,您只需要执行示例中的操作,并更新索引签名以包括已知属性的类型,即使它不能准确反映您的意图