TypeScript里怎么正确声明一个可选的函数参数?

美菊 阅读 9

我写了一个函数,想让第二个参数是可选的,但TS一直报错说类型不匹配。试过加问号和默认值都不行,是不是哪里写错了?

比如下面这样:

function greet(name: string, title?: string) {
  return <code>${title ? title + &#039; &#039; : &#039;&#039;}${name}</code>;
}
greet('Alice', 'Dr');

调用时明明传了两个参数,为什么还提示“Expected 1 arguments, but got 2”?

我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
Top丶恒菽
你这代码没问题啊,TS报错肯定不是因为这个函数定义的问题。最简单的情况是你在其他地方定义过同名的greet函数了,或者有重载声明冲突。

试试把这段代码单独放一个文件里跑:
function greet(name: string, title?: string) {
return ${title ? title + ' ' : ''}${name};
}
greet('Alice', 'Dr');


要是还报错就检查下全局类型声明或者有没有同名函数,这语法绝对没问题。
点赞 1
2026-03-09 21:02