我正在尝试为pouch-redux-middleware编写一个输入定义,它导出一个函数:
import PouchMiddleware from 'pouch-redux-middleware'
PouchMiddleware({...})
以下是我的打字定义:
interface PouchMiddleware {
(a: any): any;
}
declare var PouchMiddleware: PouchMiddleware;
declare module "pouch-redux-middleware" {
export = PouchMiddleware;
}
这会导致错误:
模块'“pouch-redux-middleware”'没有默认导出。
宣布这个的正确方法是什么?
答案 0 :(得分:4)
要转换为commonjs模块,您可能只需将定义文件更改为:
declare function PouchMiddleware(a: any): any;
declare module "pouch-redux-middleware" {
export = PouchMiddleware;
}
然后像这样导入它:
import PouchMiddleware = require("pouch-redux-middleware");
虽然有点糟糕。有人可能会得到一个更好的答案。
我相信我之前的回答仅适用于针对ES6并将模块设置为“ES2015”:
您需要使用
--allowSyntheticDefaultImports
进行编译才能使其正常工作,然后将定义文件中的界面更改为函数:declare function PouchMiddleware(a: any): any; declare module "pouch-redux-middleware" { export = PouchMiddleware; }
反应库也发生了类似的事情。 Read more here...
答案 1 :(得分:0)
通常,您可以使用以下结构导出和导入类。
module pouch-redux-middleware {
export class pouch {
}
}
要使用导出的类,您需要编写: -
import {pouch} from 'FileName'
此致
的Ajay