N 个参数 vs 单个参数:TypeScript 函数设计的考量
文章探讨了在 TypeScript 中设计函数时,是使用多个参数(`n` params)还是单个对象参数。作者认为,相比于多个参数,使用对象参数在任何情况下都更优。对象参数使代码更易读、更易于理解,避免了参数顺序带来的混淆,并提供了 TypeScript 的自动补全和类型安全优势。
← 返回
2025年4月17日 | n-params vs single param
在使用 TypeScript (以及,实际上,任何不支持命名参数的语言) 编写函数时,你可以选择单独传递参数 ( n
params),或者将它们分组到一个对象中。 虽然两者都是有效的,但我还没有找到任何情况下,对象参数不是更好选择的理由。
假设你调用一个创建用户的函数:
const signup = () => {
// ...
createUser("John", "Doe", 28, true);
// ...
};
乍一看,你能分辨出每个值的含义吗? 你只能猜测: 28
是什么? true
是什么? 你添加的参数越多,这种情况就变得越脆弱和令人困惑。
相反,考虑使用对象参数:
type TCreateUserInput = {
firstName: string;
lastName: string;
age: number;
isActive: boolean;
};
const signup = () => {
// ...
createUser({ firstName: "John", lastName: "Doe", age: 28, isActive: true });
// ...
};
无需猜测,不用担心顺序。 你的代码具有自文档性。 此外,TypeScript 还为你提供完整的自动完成和类型安全。