我不知道这个语法或符号或其他什么属于Angular2或其他什么…
但我不知道,
什么…语法是什么以及它如何在幕后工作?
ngOnChanges(...args:any[]) { console.log(args); }
它是
TypeScript rest operator.在这种情况下,它意味着任何类型的任何类型的参数都可以在那里出现;该函数将它们视为任何数组. (从ES2015开始,JavaScript最近得到了休息和传播运算符,但是你的例子中的:[]告诉我们这是TypeScript.)
例如.:
ngOnChanges('a',42,null);
……会表现出来
["a",null]
在控制台中.
这是一个完整的例子(live copy):
function foo(...args:any[]) { console.log("args.length = " + args.length); args.forEach((arg:any,index:Number) => { console.log("args[" + index + "]: " + arg); }); } foo('a',null);
args.length = 3 args[0]: a args[1]: 42 args[2]: null