我在TypeScript文件中有以下两行,试图导入一些普通的JS:
import axios from 'utils/UserSessionAPIAxios';
axios.doStuff(stringArgument);
这是我的*.d.ts
文件:
declare module 'utils/UserSessionAPIAxios' {
export const someData: string;
export type DoStuffFn = (data: string) => void;
export default interface UserSessionAPIAxios {
doStuff: DoStuffFn;
}
}
相应的JS文件如下所示:
import axios from 'axios';
export const someData = 'data data data';
const userSessionAxios = axios;
userSessionAxios.doStuff = (data) => {
// omitted
};
export default userSessionAxios;
为什么我在致电axios only refers to a type, but is being used as a value here
的行上收到错误doStuff
?
答案 0 :(得分:2)
我认为您想将.d.ts
文件更改为以下内容:
declare module 'utils/UserSessionAPIAxios' {
export const someData: string;
export type DoStuffFn = (data: string) => void;
export interface UserSessionAPIAxios {
doStuff: DoStuffFn;
}
export const userSessionAxios: UserSessionAPIAxios;
export default userSessionAxios;
}
这个想法是您的默认导出不是UserSessionAPIAxios
接口,它是一个 value ,其 type 是该接口。
希望有所帮助;祝你好运!