在我的项目类型声明文件中,我想将某些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/**/*"
]
}
我只希望能够使用它们的接口来确保期望的类型。
答案 0 :(得分:0)
这样的作品行吗?
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中的代码。