现在我使用typescript 的 v2.1.5版本使用webpack打包文件之前已经装过依赖包和@types了但是我在编译的时候一直报history模块的一个错误:[ts]Type 'History' is not assignable to type 'History'.
Two different types with this name exist, but they are unrelated.我看了一下history/index.d.ts, 发现里面有多个export ... history, 如:export as namespace History;export interface History {
...
}export namespace History {
...
}createBrowserHistory.d.tsimport { History } from './index';import { getConfirmation } from './DOMUtils';export interface BrowserHistoryBuildOptions {
basename?: string;
forceRefresh?: boolean;
getUserConfirmation?: typeof getConfirmation;
keyLength?: number;
}export default function createBrowserHistory(options?: BrowserHistoryBuildOptions): History;我想知道这些这个问题怎么解决?怎样才能编译通过?
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
简单方法:直接用react-router
的browserHistory
。
题主没给出具体的版本,所有我按下面这个解释:
{ "name": "segfault", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "history": "^4.5.0", "react-router": "^3.0.0" }, "devDependencies": { "@types/history": "^4.5.0", "@types/react-router": "^3.0.0" } }
第一个问题是@types/react-router
里引用的@types/history
的版本是^2
,devDependencies
里的是^4.5.0
,所有有了两个不同的History
接口,而这两个History
接口不兼容。
第二个问题是react-router
里的history
是^3
,和@types/react-router
里的对不上。
解决方法就是直接用react-router
里的browserHistory
,也就是`^3"的版本。
或者去github提个issue了,把版本都改对了。
添加回答
举报
0/150
提交
取消