我最近为开源redux-ui-router库添加了a typescript definition file,但我现在收到类似于1.7.3的错误:
错误TS2656:导出的外部包装类型文件 'C:/.../ node_modules / redux-ui-router / index.d.ts'是 不是一个模块。请与软件包作者联系以更新软件包 定义
我正在尝试使用我的打字稿文件中的代码导入此库:
import ngReduxUiRouter from "redux-ui-router";
我是Typescript的新手,我找不到这个定义文件在npm包中包含时应该是什么样子的清晰描述。 There's a wiki entry讨论了npm包的类型,但在重复应该使用外部模块的方向之外,没有一个具体的例子可供使用。
CORRECTION
我已经尝试删除declare module "redux-ui-router" {
代码,,这似乎在重新启动webpack后工作,我正在使用它来编译所有内容(我为了简洁而删除了注释):
export interface ReduxUIRouterAction {
type: string;
payload: any;
}
export interface ReduxUIRouterState {
currentState: Object;
currentParams: Object;
prevState: Object;
prevParams: Object;
}
export function router(state: ReduxUIRouterState, action: ReduxUIRouterAction): ReduxUIRouterState;
export var ngReduxUiRouter: string;
export function stateGo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export function stateReload(state: any): ReduxUIRouterAction;
export function stateTransitionTo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export default ngReduxUiRouter;
在npm包中包含这些更改时会有什么变化吗?
答案 0 :(得分:4)
在npm包中包含这些更改时会有什么变化吗?
是。导出需要是文件的根级别。
换句话说:环境文件不是外部模块