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