Typescript中不带省略号的动态参数
我已经测试了上面的代码。它很好用 那么我们为什么需要省略号呢? 发件人: 编译器将构建一个传入的参数数组,其名称在省略号(…)后面,允许您在函数中使用它Typescript中不带省略号的动态参数,typescript,Typescript,我已经测试了上面的代码。它很好用 那么我们为什么需要省略号呢? 发件人: 编译器将构建一个传入的参数数组,其名称在省略号(…)后面,允许您在函数中使用它 如果我理解你的问题,你是在比较两个不同的东西。以下两个示例将以相同的显示结束,但调用方式不同 事实上,这些是两个不同的概念(语法);两者都有不同的用例 function buildName(firstName: string, ...restOfName: string[]) { return firstName + " " + res
如果我理解你的问题,你是在比较两个不同的东西。以下两个示例将以相同的显示结束,但调用方式不同 事实上,这些是两个不同的概念(语法);两者都有不同的用例
function buildName(firstName: string, ...restOfName: string[]) {
return firstName + " " + restOfName.join(" ");
}
及
最好使用省略号的示例:
// Function definition:
lm( vv: number, ...kk: string[] )
{
console.log( kk )
}
// Calling
this.lm( 33, "dd","ff","da" )
我认为两者都是相同的,但是rest是可选的,为了使您的示例完全相同,您应该提供等于空数组的默认值。谢谢。你能指出一个很好的Typescript文档吗?对于文档,我在谷歌
Typescript[SUBJECT]
上浏览文章。持有大量的物品。对不起,我没有你的特定网址。
// Function definition:
lm( vv: number, kk: string[] )
{
console.log( kk )
}
// Calling
this.lm( 33, ["dd","ff","da"] )
// Function definition:
lm( vv: number, ...kk: string[] )
{
console.log( kk )
}
// Calling
this.lm( 33, "dd","ff","da" )
type funcDefinition = (commandName: number, ...params: string[]) => void;
const funcA: funcDefinition = (vv: number, p1: string = 'defA', p2: string = 'defB', ...othersParams: string[]) => {
console.log(vv, p1, p2, othersParams);
}
const funcB: funcDefinition = (vv: number, p1: string, ...othersParams: string[]) => {
console.log(vv, p1, othersParams);
}
const funcC: funcDefinition = (vv: number, ...othersParams: string[]) => {
console.log(vv, othersParams);
}