使用jsDoc和jsConfig.json在增强vscode中代码提示

JSDoc

jsDoc中文官网

jsconfig.json的配置

可以开启类型检查包含的文件,排除的文件,配置项目根路径,路径别名
如下:

{
  "compilerOptions": {
    "checkJs": true,// 开启js的类型检查,没找到会报错
    "baseUrl": ".", // 项目根路径
    "paths": {
      "@/*": ["./*"] // 别名
    }
  },
  "include": ["./**/*"], // 项目包含的文件
  "exclude": ["./d.js"],// 排除的路由
}

jsDoc

jsDoc中的类型定义通过 @typedef {类型type} 类名名, 指定变量类型通过 @type {类型type},类似ts中的as关键字,其中类型可以使用ts中的类型,以及使用一些内置的工具类如Record

类型定义

如果某个js中没有export导出,那么这个js中通过@typedef定义的类型,可以直接在其他js文件中通过@type使用,如果使用export关键字,那么其他文件要使用该类型,必须通过 @type {import('@/xxx.js').类型}来使用

疑点:如果两个不同的js,通过@typedef定义了同名的类型,而且没有显式export,那么其他文件使用时

/**
 * @typedef {Object} Dragon
 * @property {string} name 名字
 * @property {number} age 年龄 这是注释
 */
等价于

/**
 * @typedef {{name:string,age:number,c:number}} Dragon
 */
 
export {} // 使用了export,其他文件使用该文件的类型必须import

类型导入使用

/** @type {import('@/a.js').Dragon} */ 表明test变量是a.js里的Dragon类型
const test = {}

可以通过ts中的类型定义来快速定义一个对象的类型
在这里插入图片描述
在这里插入图片描述

/**
 * @typedef {object} Dragon
 * @property {string} name
 * @property {number} age
 * @property {number} [height] 可选属性
 * @property  {readonly number} weight
 */
等价于
/**
 *@typedef {{name:string,age:number,height?:number,readonly weight:number}} Dragon1
 */
/**
 * @type {Dragon}
 */
const a = {}

泛型类型定义

/**
 * @template T
 * @typedef {Object} Container
 * @property {T} value - 任意类型的值
 */

/**
 * @type {Container<number>}
 */
const numberContainer = {}
numberContainer.

/**
 * @type {Container<string>}
 */
const stringContainer = {}
stringContainer.

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:大家不要使用target配置JS语言版本,否则会出现各种各样的问题,会造成智能感知失灵,一定要使用lib配置。我以前踩过这些坑,网上找不到任何解决方案,我通过查看axios的tsconfig.json,寻找到了解决方案。\[1\] 引用\[2\]:我们只需在项目根目录创建一个jsconfig.json文件即可,基本配置如下。我们的项目使用了element-plus组件库,为了提供更好的智能感知,我添加了element-plus的TS类型定义到compilerOptions的types数组。\[2\] 引用\[3\]:下面的多行注释使用jsdoc语法,我们也叫它文档注释。vscode,webstorm等IDE都支持jsdoc语法。\[3\] 问题:vue.config.js和vite.config.js区别 回答: vue.config.js和vite.config.js是用于配置Vue项目和Vite项目的配置文件。它们的区别在于所针对的项目类型和构建工具。vue.config.js是用于配置Vue项目的构建工具,例如Vue CLI。它可以用来配置项目的打包输出路径、代理设置、插件配置等等。而vite.config.js是用于配置Vite项目的构建工具,Vite是一种基于ESM的前端构建工具,它具有快速的冷启动和热模块替换的特性。vite.config.js可以用来配置项目的插件、构建选项、代理设置等等。因此,根据项目类型和构建工具的不同,我们需要使用不同的配置文件来进行相应的配置。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* *3* [Vite,Vue3项目,添加Jsconfig.Json和类型定义,让你的IDE更智能](https://blog.csdn.net/weixin_42232156/article/details/129877980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值