如何在项目声明文件中使用 Axios 类型
Posted
技术标签:
【中文标题】如何在项目声明文件中使用 Axios 类型【英文标题】:How to use Axios types in project declaration file 【发布时间】:2019-09-05 18:17:29 【问题描述】:在我的项目类型声明文件中,我想使用一些 Axios 类型作为我的一些类型的一部分,但是their declarations are all exported。
我想在声明文件中使用AxiosResponse
和AxiosError
,但是Axios 没有专用的@types
。当您查看 Axiox 声明文件时,您可以看到所有接口和类型都已导出,这使得无论我如何设置我的 tsconfig.json
,编译器都不会自动使用这些类型。
这是我的 tsconfig:
"compilerOptions":
"target": "es2017",
"outDir": "dist/main",
"rootDir": "src",
"moduleResolution": "node",
"module": "commonjs",
"declaration": true,
"inlineSourceMap": true,
"esModuleInterop": true,
...
"lib": ["es2017"],
"types": ["axios"],
"typeRoots": ["node_modules/@types", "types", "node_modules"]
,
"include": [
"src/**/*"
],
"exclude": [
"./test/**/*"
]
我只是希望能够使用他们的接口来确保我期望的类型。
【问题讨论】:
刚刚发现这篇关于同一问题的帖子:***.com/questions/39040108/… 【参考方案1】:这样的东西有用吗?
types/my/index.d.ts
:
import AxiosError from "axios";
export interface MyType
error: AxiosError;
p1: string;
src/index.ts
(设置了一些示例字段):
import MyType from '../types/my';
let v1: MyType =
error:
config:
url: 'http:/example.com'
,
name: 'name',
message: 'message'
,
p1: 'myMessage'
至少 IntelliSense 可以工作并且可以编译。请参阅 GitHub 中的代码here。
【讨论】:
以上是关于如何在项目声明文件中使用 Axios 类型的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 vue-cli3 创建的 Vue2 项目中使用 axios
如何在反应项目和 Firebase 中使用带有 axios 的删除请求?