如何修改API方法,使其支持零个或一个可选type参数?
问题描述
API的可选参数type接受字符串(string)列表,实际无需传入多个type值,但存在完全不传入该参数的场景。需要修改以下方法,使其支持传入零个或一个参数:
const checkIfExists = async (type: string) => { const result = await some_api.list( { limit: 1, type: [type], } ); return result.data.length > 0 };
解决方案
通过两个关键修改即可实现需求:
- 将函数参数
type设为可选参数(添加?标记),允许调用时不传该参数; - 构造API请求参数时,仅当
type存在时才添加type字段,避免传入多余的空字段。
修改后的代码(两种写法任选其一)
写法一:使用对象展开语法
const checkIfExists = async (type?: string) => { const apiParams = { limit: 1, ...(type && { type: [type] }) }; const result = await some_api.list(apiParams); return result.data.length > 0; };
写法二:条件添加属性
const checkIfExists = async (type?: string) => { const apiParams = { limit: 1 }; if (type) { apiParams.type = [type]; } const result = await some_api.list(apiParams); return result.data.length > 0; };
说明
- 调用
checkIfExists()(不传参数)时,apiParams中不会包含type字段,符合API的不传参场景; - 调用
checkIfExists('xxx')时,type字段会以数组形式传入,匹配API接受字符串列表的要求; - 两种写法逻辑一致,可根据个人代码风格选择。
内容的提问来源于stack exchange,提问作者ambe5960
相关产品推荐
相关产品推荐

