TS报错:找不到类型声明

方法一:

在项目根目录或 src 文件夹下创建一个后缀为 .d.ts 的文件,并写入以下内容:

declare module '*.vue' {
  import { ComponentOptions } from 'vue'
  const componentOptions: ComponentOptions
  export default componentOptions
}

这种方式我觉得没啥效果,报错时将它打开,一会还会报错。

方法二:

在根目录创建一个 tsconfig.json 文件,文件内容为:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": false,
    "jsx": "preserve",
    "moduleResolution": "node"
  }
}

补充一下: 如果不想写ts,在vuecli中支持js的话,可以在tsconfig.json 文件中加上

"allowJs": true,即可。

ts基础:https://blog.csdn.net/weixin_50429510/article/details/119728976?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-12-119728976-blog-123426215.pc_relevant_recovery_v2&spm=1001.2101.3001.4242.7&utm_relevant_index=15

tsconfig.json是ts编译器的配置,ts编译器可以根据此文件对代码进行编译,将ts编译成js

{
    /*
    tsconfig.json是ts编译器的配置我呢见,ts编译器可以根据他的信息来对代码进行编译
    'include'用来指定哪些ts文件需要被编译,
    路径: *任意文件, **任意目录
    'exclude' 不需要背编译的文件目录,
    默认值:['node_modules', 'bower_components', 'jspm_packages']
    */
    "include": ["./src/**/*"],
    // "exclude": ["./src/hello/**/*"],

    /*
    定义被继承的配置文件
    */
    // "extends": "",

    /*
    compilerOptions: 编译器选项
    */
    "compilerOptions": {
        //用来指定ts被编译为的ES的版本
        "target": "es2015",

        //指定使用的模块化的规范'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'es2022', 'esnext', 'node12', 'nodenext'
        "module": "es2015",

        //用来指定项目中要使用的库,代码提示,代码检查, 在浏览中执行的化不需要指定
        // 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'esnext', 'dom', 'dom.iterable', 
        // 'webworker', 'webworker.importscripts', 'webworker.iterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 
        // 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 
        // 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays',
        //  'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 
        //  'es2019.object', 'es2019.string', 'es2019.symbol', 'es2020.bigint', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 
        //  'es2020.symbol.wellknown', 'es2020.intl', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'esnext.array',
        //   'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref'.
        //默认值为:es6, dom 即为浏览器的运行环境
        // "lib": ["dom","es5"]

        //指定编译后文件所在的目录
        "outDir": "./dist",

        //将代码合并为1个文件
        //设置outFile后所有的全局作用域中的代码会合并到同一个文件中
        //用于module: amd, system
        // "outFile": "./dist/app.js"

        //所有严格检查的总开关
        "strict": true,

        //是否对js文件进行编译,默认为false
        "allowJs": true,

        //是否检查js代码是否符合语法规范,默认为false
        "checkJs": true,

        //是否移除注释,默认为false
        "removeComments": true,

        //不生成编译后的文件,只执行编译的过程,默认为false
        "noEmit": false,

        //当有错误时,不生成编译后的文件,默认为false
        "noEmitOnError": true,

        //用来设置编译后的文件是否使用严格模式,默认为false
        "alwaysStrict": true,

        //不允许隐式any类型,默认为false
        "noImplicitAny": true,

        //不允许不明确类型this,默认为false
        "noImplicitThis": true,

        //严格的检查空值,默认为false
        "strictNullChecks": true
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 3,使用TypeScript配置路径别名遇到不到模块或其相应的类型声明的问题,可以按照以下步骤解决: 1. 在项目根目录下的tsconfig.json文件到"compilerOptions"字段,确保有以下配置: ``` "baseUrl": "./", "paths": { "@/*": ["src/*"] } ``` 这样配置可以将路径别名"@/"映射到"src/"。 2. 确保项目根目录下的vite.config.js文件有正确的配置。请确认resolve.alias配置如下: ``` resolve: { alias: { '@': path.resolve(__dirname, 'src') } } ``` 这样配置可以使vite正确识别路径别名"@/"。 3. 如果仍然遇到不到模块或其相应的类型声明的问题,可以尝试执行以下命令: ``` npm add @types/node --save-dev ``` 这样可以安装Node.js的类型声明文件,以解决类型声明问题。 通过以上步骤,您应该能够解决在Vue 3使用TypeScript配置路径别名遇到不到模块或其相应的类型声明的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3.x+vite+ts+vue-router@4.x 路由使用demo](https://download.csdn.net/download/csl125/86249355)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue3+vite+ts 配置别名@报错不到模块](https://blog.csdn.net/weixin_43754395/article/details/128112575)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue3+TS更改文件系统路径别名报错不到模块“@/store”或其相应的类型声明ts(2307)](https://blog.csdn.net/qq_52855464/article/details/128276126)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值