reactjs - Hur man utökar react-router Router-klass med TypeScript?
Jag försöker utöka react-router Router-klass på detta sätt:
class RouterWrapper extends Router {
componentWillMount() {
super.componentWillMount();
}
}
så jag har fått ett TypeScript-kompileringsfel TS2339: Property 'componentWillMount' does not exist on type 'Component<RouterProps, ComponentState>'. Alla nödvändiga typdefinitioner är installerade. Just nu har jag hittat en lösning:
class PatchRouter extends Router {
componentWillMount?();
}
Sedan utvidgas från PatchRouter, men denna lösning är så ful.
Så, här är min fråga: Hur förlänger man Router korrekt med TypeScript 2.2?
mitt package.json
{
"name": "react",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "cross-env NODE_ENV=development node dev-server.js",
},
"author": "",
"license": "ISC",
"dependencies": {
"cross-env": "^3.1.3",
"express": "^4.14.0"
},
"devDependencies": {
"@types/history": "^2.0.45",
"@types/react": "^15.0.0",
"@types/react-dom": "^0.14.19",
"@types/react-router": "^2.0.44",
"core-js": "^2.4.1",
"dom-helpers": "^3.2.0",
"jss": "^6.2.0",
"jss-camel-case": "^3.0.0",
"jss-default-unit": "^5.0.2",
"jss-nested": "^3.0.1",
"jss-vendor-prefixer": "^4.0.0",
"memory-fs": "^0.4.1",
"mobx": "^3.0.1",
"mobx-react": "^4.1.0",
"mobx-react-devtools": "^4.2.11",
"react": "^15.4.1",
"react-dom": "^15.4.1",
"react-hot-loader": "^3.0.0-beta.6",
"react-router": "^3.0.1",
"ts-loader": "^1.3.0",
"tslib": "^1.5.0",
"typescript": "^2.2.0-dev.20161208",
"url-loader": "^0.5.7",
"webpack": "^2.2.0-rc.6",
"webpack-dev-middleware": "^1.9.0",
"webpack-hot-middleware": "^2.14.0"
}
}