javascript - 形状不定的物体
问题描述
在我的代码库中,我有几个处理 API 调用的导出方法。这些方法中的每一个都采用一个param
始终是对象但形状不确定的参数,例如
export {
getSomething: (param: any) => getSomething(param),
...
}
param
可能是这样的:
{ userId: "123" } || { userId: "123", otherId: "234", ... } etc.
这是getSomething
定义:
function getSomething(param: { userId: string; }) {
...
}
目前我找到的唯一解决方案(我不满意)可能是这样的:
interface Param {
[key: string]: string;
}
export {
getSomething: (param: Param) => getSomething(param),
...
}
// in another file
function getSomething(param: Param) {}
但是我失去了对我的函数期望作为参数的描述
我怎么能在这里摆脱类型any
并指定它param
是一个形状不确定且键数可变的对象?
非常感谢你的帮助
解决方案
我确实认为您的解决方案是正确的。使用界面隔离是一个 SOLID 原则。
此外,您的方法getSomething
只需要使用key
param 的所有其他属性是不需要的。
我确实认为这是清洁代码和 SOLID 的正确方法。
推荐阅读
- python - 将数据类型附加到 json 文件
- sql-server - MSSQL JSON 自动转 Go 结构
- android - 向我的 DAO 添加(错误)Room 数据库查询时,为什么会收到错误“实体和 POJO 必须具有可用的公共构造函数”?
- r - 格式不同时如何使用R计算以毫秒为单位的时间差?
- sql - MySQL 从具有相同键的多行数据中更新 1 行
- elasticsearch - 查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空
- google-apps-script - Google Apps 脚本:如何一次更新多个切片器的范围?
- javascript - 从反应变量引用的可写存储中删除数据时,Svelte 出错
- octave - 两个向量的八度过零
- bash - Bash - 命令行参数的长度 $0