开发需求
着手写代码之前,首先需要充分理解需求,避免无效开发,浪费精力与时间。遵循单一原则,避免一个函数一两千行代码情况。抽象化代码,将多组件,多页面使用的变量函数等等都应该抽象出来统一管理。1、对象形式的代码注释示例
/** * @typedef {object} FuzzySearchOptions * @property {number} COMBO3 - Fuzzy search by 3-hit combo. * @property {number} COMBO6 - Fuzzy search by 6-hit combo. * @property {number} COMBO9 - Fuzzy search by 9-hit combo. * @property {number} COMBO12 - Fuzzy search by 12-hit combo. * @property {number} ELIMINATE6 - Fuzzy search by eliminating 6 targets. * @property {number} ELIMINATE10 - Fuzzy search by eliminating 10 targets. * @property {number} ELIMINATE15 - Fuzzy search by eliminating 15 targets. * @property {number} TOTAL_DAMAGE - Fuzzy search by total damage. * @property {number} SINGLE_HIGHEST_DAMAGE - Fuzzy search by single highest damage. * @property {number} TOTAL_CLEAR_STEPS - Fuzzy search by total clear steps. * @property {number} ENERGY_CONSUMPTION - Fuzzy search by energy consumption. * @property {number} TOTAL_CHARACTER_DAMAGE - Fuzzy search by total character damage. * @property {number} SINGLE_HIGHEST_CHARACTER_DAMAGE - Fuzzy search by single highest character damage. * @property {number} TOTAL_ABNORMAL_VALUE - Fuzzy search by total abnormal value. */ /** * @type {FuzzySearchOptions} * @readonly * @description Enum representing fuzzy search options for a game. * @author Your Name * @version 1.0.0 */ const FUZZY_SEARCH = { COMBO3: 1, COMBO6: 2, COMBO9: 3, COMBO12: 4, ELIMINATE6: 5, ELIMINATE10: 6, ELIMINATE15: 7, TOTAL_DAMAGE: 8, SINGLE_HIGHEST_DAMAGE: 9, TOTAL_CLEAR_STEPS: 10, ENERGY_CONSUMPTION: 11, TOTAL_CHARACTER_DAMAGE: 12, SINGLE_HIGHEST_CHARACTER_DAMAGE: 13, TOTAL_ABNORMAL_VALUE: 14, }; //在这个示例中,`@typedef`定义了一个别名`FuzzySearchOptions`,并通过`@type {FuzzySearchOptions}`为`FUZZY_SEARCH`添加了相应的类型提示。在`@description`中添加了用于描述的信息,以及`@author`和`@version`标签来提供作者和版本信息。你只需要替换`Your Name`和版本号为实际的作者和版本信息即可。2、数组形式的注释代码示例
// 对象形式的注释示例参考上方 /** * 模糊搜索选项数组。 * @type {Array3、函数形式的注释代码示例
/** * 异步解封用户。 * * @param {object} data - 包含解封信息的对象。 * @param {string} data.ban_info.user_id - 被封禁用户的 ID。 * @param {string} data.game_info.nick_name - 被封禁用户的昵称。 * @returns {Promise4、组件参数形式注释代码示例
/** * @typedef {object} YourComponentProps * @property {boolean} isAdd - 是否是添加操作,默认为 true。 * @property {Object} item - 传入的项目对象,默认为 undefined。 * @property {number|undefined} allowMatchPattern - 允许的比赛类型,默认为 undefined。 * @property {boolean} isShowMatchTime - 是否展示赛事时间,默认为 false。 */ /** * 你的 Vue 组件 * @type {import('vue').ComponentOptions