[英]How to create an “external module” typescript definition file to include with an npm package?
我最近为开源redux-ui-router库添加了一个打字稿定义文件 ,但是现在我收到类似打字稿1.7.3的错误:
错误TS2656:导出的外部软件包类型文件'C:/.../ node_modules / redux-ui-router / index.d.ts'不是一个模块。 请与软件包作者联系以更新软件包定义。
我正在尝试在我的打字稿文件中使用以下代码导入该库:
import ngReduxUiRouter from "redux-ui-router";
我是Typescript的新手,在npm软件包中包含该定义文件时,我找不到确切的描述。 有一个Wiki条目讨论了npm软件包的类型,但是除了重复说明应该使用外部模块的方向外,没有具体的示例可以使用。
更正了我尝试删除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软件包中时,这套更改会是什么期望吗?
当将其包含在npm软件包中时,这套更改会是什么期望吗?
是。 导出必须是文件的根级别。
换句话说: 环境文件不是外部模块
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.