Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript中定义对象类型以包含特定的属性键_Typescript - Fatal编程技术网

在typescript中定义对象类型以包含特定的属性键

在typescript中定义对象类型以包含特定的属性键,typescript,Typescript,我正在处理一个Ionic Sqlite数据库帮助程序库,为了简化其余函数的工作,我需要要求用户将Params属性上的ID键与其他键放在一起 interface dbObj { tableName: string; orderBy: string; Params: paramsList; } Params属性应要求在其中包含ID键,但不应干扰用户可能在Params中添加的任何其他键 interface paramsList { ID: s

我正在处理一个Ionic Sqlite数据库帮助程序库,为了简化其余函数的工作,我需要要求用户将Params属性上的ID键与其他键放在一起

   interface dbObj {
      tableName: string;
      orderBy: string;
      Params: paramsList;
    }
Params属性应要求在其中包含ID键,但不应干扰用户可能在Params中添加的任何其他键

interface paramsList {
    ID: string;
    ????
}
如何强制在Params中使用ID键,但允许用户在paramsList中自由添加任何其他键? 我希望这不会听起来很愚蠢,因为我还是个打字新手。

这应该行得通

   interface dbObj {
      ...
      Params: {ID: string, [key: string]: any};
    }

现在,
Params
被强制具有
ID
,并且它还可以包含任何其他字段。

阅读并了解如何绕过它们,特别是说“更好的方法可能是添加字符串索引签名”的句子,如@jcalz所说,您可以拥有一个具有已定义属性和字符串索引签名的接口。这将假定所有其他属性都是字符串。接口参数列表{ID:string;[property:string]:string;}是。非常感谢你@Xenos我的回答有助于解决问题吗?