如何获取JavaScript函数期望的参数对象键名?
如何获取JavaScript函数参数对象的期望键名?
仅从你给出的这段原生JavaScript代码来看,没办法通过程序自动获取params对象所有期望的键名,具体原因和解决办法如下:
为什么当前方法行不通
- JavaScript是动态类型语言,函数的参数对象没有强制的结构要求,这段代码里只用到了
params.message,但我们没法确定函数是否还期望其他未被使用的键。 arguments对象只能拿到函数调用时传入的实际参数信息,根本没法提前获知函数设计时期望的参数结构,这就是你用它没效果的原因。
可行的解决方式
- 手动分析函数代码:直接扫一遍函数内部的逻辑,找出所有被访问的
params.xxx属性,比如这段代码里能确定的期望键就是message。 - 补充注释/文档:在函数开头添加参数说明注释,比如:
这样不管是你自己还是其他开发者,都能清晰看到期望的键名。/** * @param {Object} params - 函数参数对象 * @param {string} params.message - 需要打印的消息 * @param {number} [params.id] - 可选的ID(示例) */ function myFunction(params) { // TODO: something console.log(params.message) } - 改用TypeScript:如果项目允许,用TS的接口来定义参数结构,强制约束参数的键名和类型,示例:
这种方式下,编辑器和编译器都会帮你明确参数的结构,避免传参错误。interface MyParams { message: string; // 可以添加其他必填/可选的键 } function myFunction(params: MyParams) { console.log(params.message); }
内容的提问来源于stack exchange,提问作者Theryston Santos
相关产品推荐
相关产品推荐

