Property ‘$q‘ does not exist on type ‘CombinedVueInstance<{ ... }Record<never, any>& Vue ...Vetur

最近接触了一个vue UI框架 Quasar,维护团队非常活跃,有望成为今后UI框架的扛把子,推荐大家可以去看看。

根据官方文档创建了一个项目,使用VS Code打开项目(这里要夸一下Quasar团队,把VS Code配置项都列出来了,很贴心)。
官方配置地址:Quasar 配置VS Code

一、问题描述

按照官方Eslint配置配置好后,打开项目,发现 vue<template>$q出现红色下划线,虽然项目能正常运行,但这个提示一直在,强迫症必须要干掉它。如下图:
Property ‘$q‘ does not exist on type ‘CombinedVueInstance<{ ... }Record<never, any>& Vue ...Vetur

二、解决办法

经过查阅,发现是VS Code语法校验规则引起的,这里修改下VS Code中的配置。
依次点击:文件 → 首选项 → 设置(英文版:File → Preferences → Settings),在搜索栏中输入validation,点击Vetur,把 Vetur › Validation: Interpolation对勾去掉,操作步骤如下图:
Property ‘$q‘ does not exist on type ‘CombinedVueInstance<{ ... }Record<never, any>& Vue ...Vetur

三、原因分析

可能是因为Vetur 版本问题,新版统一使用TypeScript语言验证<template>区域中的代码,去掉验证即可。

看都看到这了,留下三连吧   ——点赞、收藏、留言。