1
函数签名中对象参数的含义是什么?我遇到了这个代码片段,我不确定这里发生了什么。函数签名中的对象参数的含义是什么?
export const items = (state: any = [], {type, payload}) => {
case (type) {
...
}
};
我不明白函数签名中的{type,payload}。
函数签名中对象参数的含义是什么?我遇到了这个代码片段,我不确定这里发生了什么。函数签名中的对象参数的含义是什么?
export const items = (state: any = [], {type, payload}) => {
case (type) {
...
}
};
我不明白函数签名中的{type,payload}。
这是destructuring的一个示例。
你可以看到这一点:
let items = (state: any = [], {type, payload}) => {
};
编译成的打字稿playground:
var items = function (state, _a) {
if (state === void 0) { state = []; }
var type = _a.type, payload = _a.payload;
};
,并从我可以推断,这意味着该函数的第二个参数将是一个具有称为“类型”的属性的对象,以及称为“有效载荷”的另一属性。此外,我将能够直接引用我的函数体“类型”和“有效载荷”:
let items = (state: any = [], {type, payload}) => {
console.log(type);
console.log(payload);
};
let myobj = {
payload: "blue",
type: "no-type"
}
items(null, myobj);
只是作为附录,这是ES6规范的一部分,这也不是唯一的TS。 请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment – jthereliable
@jthereliable谢谢! – Seamus