函数签名中对象参数的含义是什么?我遇到了这段代码,我不确定这里发生了什么。
export const items = (state: any = [], {type, payload}) => {
case (type) {
...
}
};
我不理解函数签名中的{type,payload}。
答案 0 :(得分:3)
这是destructuring的一个例子。
你可以看到这个:
var items = function (state, _a) {
if (state === void 0) { state = []; }
var type = _a.type, payload = _a.payload;
};
编译到TypeScript playground:
let items = (state: any = [], {type, payload}) => {
console.log(type);
console.log(payload);
};
let myobj = {
payload: "blue",
type: "no-type"
}
items(null, myobj);
从中可以推断,这意味着函数的第二个参数将是一个具有名为" type"的属性的对象,以及另一个名为" payload"的属性。此外,我将能够参考" type"和"有效载荷"直接在我的函数体中:
@media screen and (min-width: 780px) {
fa-bars {
display: none;
}
}