typescript - 如何声明一个只接受两个或零个参数的函数?
问题描述
在 TypeScript 中,如果我声明这样的函数
function foo(arg1?: any, arg2?: any)
如果我调用函数,编译器不会抱怨
- 零参数
- 一个论点
- 两个论点
如果我希望编译器符合一个参数而不是两个或零,我应该如何声明该函数?
解决方案
您可以使用函数重载: https ://www.typescriptlang.org/docs/handbook/2/functions.html#function-overloads
// Start with most specific overload signature
function foo(arg1: any, arg2: any): any;
// And then, less specific overload signature
function foo(): any;
// At the end, write your function implementation
function foo(arg1?: any, arg2?: any) {
console.log(arguments);
}
foo(1, 'test'); // Ok
foo(); // Ok
foo('a'); // Compile error
推荐阅读
- c# - 如何处理asp.net core webapi中的验证异常
- javascript - 只有 GET '/' 路线在我的 MERN 项目中有效,使用 POSTMAN 进行测试得到 404 响应
- c# - 从 C# 中的 JSON 结构中提取数据
- javascript - window.open() 后无法获取子窗口的元素
- python - 如何使用 pytest 仅在我的本地机器上运行特定测试
- sum - 文件样式错了吗?以及如何添加总和
- sas - 为每个月创建一个标志策略处于活动状态
- laravel-8 - Laravel 8 分别上传两张图片。在数据库中添加相同的图像名称
- entity-framework-core - 与实体框架的一对多关系
- node.js - 创建 NodeJS API。使用 msnodesqlv8 时,无法将 heroku master 推送到 heroku 应用程序