我正在尝试将现有的大量React项目转换为TypeScript。
我有webpack
2.7.0、ts-loader
3.5.0、typescript
2.9.2、source-map-loader
0.2.3,以及用于react
和react-dom
的类型声明文件。
这是我的tsconfig.json
{
"compilerOptions": {
"outDir": "./dist/", // path to output directory
"sourceMap": true, // allow sourcemap support
"strictNullChecks": true, // enable strict null checks as a best practice
"module": "es6", // specify module code generation
"jsx": "react", // use typescript to transpile jsx to js
"target": "es5", // specify which target of JavaScript should be emitted from the given TypeScript
"allowJs": true // allow a partial TypeScript and JavaScript codebase
},
"include": [
"./src/"
]
}
这是我的一些webpack.config.js
module: {
rules: [
{
test: /.(t|j)sx?$/,
exclude: /node_modules/,
loader: 'ts-loader'
},
{ enforce: "pre", test: /.js$/, loader: "source-map-loader" },
...other stuff for css-loader and url-loader
当我运行npm start
时,我得到:
ERROR in ./src/app/index.js
Module build failed: Error: Debug Failure. False expression.
at getJSDocTags (C:Pathtonodemodulestypescriptlibtypescript.js:13197:22)
at getFirstJSDocTag (C:Pathtonodemodulestypescriptlibtypescript.js:13205:24)
at Object.getJSDocType (C:Pathtonodemodulestypescriptlibtypescript.js:13173:19)
at getContextualSignature (C:Pathtonodemodulestypescriptlibtypescript.js:41002:32)
at checkFunctionExpressionOrObjectLiteralMethod (C:Pathtonodemodulestypescriptlibtypescript.js:44621:43)
at checkExpressionWorker (C:Pathtonodemodulestypescriptlibtypescript.js:45681:28)
at checkExpression (C:Pathtonodemodulestypescriptlibtypescript.js:45609:42)
at checkExpressionCached (C:Pathtonodemodulestypescriptlibtypescript.js:45457:38)
at getWidenedTypeFromJSSpecialPropertyDeclarations (C:Pathtonodemodulestypescriptlibtypescript.js:30757:46)
at getTypeOfVariableOrParameterOrProperty (C:Pathtonodemodulestypescriptlibtypescript.js:31032:28)
at getTypeOfSymbol (C:Pathtonodemodulestypescriptlibtypescript.js:31242:24)
at checkPropertyAccessExpressionOrQualifiedName (C:Pathtonodemodulestypescriptlibtypescript.js:42338:53)
at checkPropertyAccessExpression (C:Pathtonodemodulestypescriptlibtypescript.js:42293:20)
at checkExpressionWorker (C:Pathtonodemodulestypescriptlibtypescript.js:45663:28)
at checkExpression (C:Pathtonodemodulestypescriptlibtypescript.js:45609:42)
at checkBinaryLikeExpression (C:Pathtonodemodulestypescriptlibtypescript.js:45155:29)
@ multi (webpack)-dev-server/client?http://0.0.0.0:8080 webpack/hot/dev-server ./src/app/index.js
这个版本在开始我的 TypeScript 迁移之前有效,但现在不是了。我没有任何ts
或tsx
文件。一切都只是js
/jsx
.
任何帮助将不胜感激。
我刚才遇到了完全相同的问题,找不到任何文档来帮助我。它看起来像 2.9 中的打字稿错误。
尝试升级typescript@next(截至今天是 3.0.0-dev.20180703(。这让我越过了界限!