ก่อนหน้านี้ฉันได้บันทึกพารามิเตอร์ออบเจ็กต์ของฉันไว้เสมอดังนี้:
/**
* Description of the function
*
* @param {Object} config - The configuration
* @param {String} config.foo
* @param {Boolean} [config.bar] - Optional value
* @return {String}
*/
function doSomething (config = {}) {
const { foo, bar } = config;
console.log(foo, bar);
// do something
}
แต่ฉันไม่แน่ใจว่าแนวทางที่ดีที่สุดคืออะไรกับพารามิเตอร์ฟังก์ชัน desctructured ฉันจะเพิกเฉยต่อวัตถุกำหนดหรือไม่หรือวิธีใดเป็นวิธีที่ดีที่สุดในการจัดทำเอกสาร
/**
* Description of the function
*
* @param {String} foo
* @param {Boolean} [bar] - Optional value
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
ฉันรู้สึกว่าแนวทางของฉันข้างต้นไม่ได้ทำให้ชัดเจนว่าฟังก์ชั่นคาดหวังobject
และไม่ใช่สองพารามิเตอร์ที่แตกต่างกัน
อีกวิธีหนึ่งที่ฉันคิดว่าจะใช้@typedef
แต่นั่นอาจเป็นเรื่องยุ่งมาก (โดยเฉพาะในไฟล์ขนาดใหญ่ที่มีหลายวิธี)?
/**
* @typedef {Object} doSomethingConfiguration
* @property {String} foo
* @property {Boolean} [bar] - Optional value
*/
/**
* Description of the function
*
* @param {doSomethingConfiguration}
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
config
ในรหัสของคุณหรือไม่หรือมีชื่อใด ๆ เลย