You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未使用import时TypeScript无法识别axios的问题求助

未使用import时TypeScript无法识别axios的问题求助

我目前的tsconfig.json配置如下:

{
  "compilerOptions": {
    "noEmitOnError": true,
    "noImplicitAny": false,
    "removeComments": false,
    "sourceMap": true,
    "target": "es6",
    "moduleResolution": "node",
    "module": "ES6",
    //"strict": true,
    "types": [ "node", "bootstrap", "jquery", "axios"],
    "esModuleInterop": true,
    "typeRoots": [
      "./node_modules/@types", // Default path to search typings.
      "./lib/types" // Directory of typings that located by Libman.
    ]
  },
  "include": [
    "../wwwroot/assets/js/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

我已经执行了以下安装命令,并且把axios加入到了tsconfig.json的types数组中:

npm i axios --global
npm install --save-dev @types/axios

查看node_modules/@types/axios目录时,发现里面没有/dist文件夹。之后我在TypeScript文件里直接使用axios(不想写import语句),编译时却碰到了这个错误:

error TS2304: Build:Cannot find name 'axios'.

有没有大佬知道怎么解决这个问题?我就是不想在每个TS文件里都写import。


解决方案建议

你可以试试下面这几个步骤,应该能解决全局使用axios时TypeScript识别的问题:

  • 先把axios安装到项目本地:全局安装的包可能没法被你的项目正确识别,先卸载全局的axios,再安装到项目依赖里:

    npm uninstall -g axios
    npm install axios --save
    
  • 把axios挂载到全局window对象:找一个项目的入口TS文件(或者单独写一个初始化文件),添加这段代码,让axios成为全局变量:

    // 用CommonJS方式
    window.axios = require('axios');
    
    // 或者用ES模块方式
    import axios from 'axios';
    (window as any).axios = axios;
    
  • 让TypeScript识别全局axios的类型:你可以在项目里创建一个全局类型声明文件,比如global.d.ts,把它放到lib/types目录下(因为你的tsconfig.json里typeRoots包含了这个路径),文件内容如下:

    declare global {
      interface Window {
        axios: typeof import('axios');
      }
    }
    
    export {};
    

    这样TypeScript就知道window上有axios这个全局变量,并且能正确识别它的类型了。

  • 确保声明文件被包含:检查你的tsconfig.json的include配置,确保这个global.d.ts所在的目录被包含进去,如果放在../wwwroot/assets/js/下的话,现在的include配置已经覆盖这个路径了,就不用额外修改。

做完这些步骤后,你应该就能在TS文件里直接用axios,不用写import也不会报错啦。

备注:内容来源于stack exchange,提问作者VAAA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:42:46