在typescript update 2.3.4 => 2.4.2之后,我得到编译错误“Cannot find type definition file for 'reflect-metadata'”,

gtlvzcf8  于 2023-08-07  发布在  TypeScript
关注(0)|答案(3)|浏览(190)

我有一个用TypeScript编写的React / Mobex应用程序,由Webpack 1构建。在将TypeScript版本从2.3.4更新到2.4.2之后,我收到一个错误

ERROR in C:\myproject\tsconfig.json
error TS2688: Cannot find type definition file for 'reflect-metadata'.

字符串
我也试过Typescript 2.7.2,同样的错误。我尝试在"paths"中显式提供其类型的路径,尝试安装最新版本的'reflect-metadata',包括全局-仍然相同的错误。

tsconfig.json

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "jsx": "react",
        "lib": ["dom", "es2015.promise", "es6"],
        "module": "commonjs",
        "moduleResolution": "node",
        "noImplicitAny": true,
        //"noUnusedLocals": true,
        "noUnusedParameters": true,
        "outDir": "./dist/",
        "sourceMap": true,
        "suppressImplicitAnyIndexErrors": true,
        "target": "es5",
        "types": ["reflect-metadata"],
        "baseUrl": ".",
        "paths": {
            "react-split-pane": ["./type_fixes/react-split-pane/index.d.ts"],
            "react-dropzone": ["./type_fixes/react-dropzone/index.d.ts"],
            "react-bootstrap-toggle": ["./type_fixes/react-bootstrap-toggle/index.d.ts"]
        }
    },
    "include": [
        "./src/**/*",
        "./index.tsx",
        "./declarations.d.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

package.json

"dependencies": {
                //...
    "reflect-metadata": "0.1.10",
                //...
},
  "devDependencies": {
     //...
    "typescript": "2.4.2",
    //...
  },

2eafrhcq

2eafrhcq1#

尝试从types部分删除reflect-metadata。您可以像往常一样导入包:

import 'reflect-metadata'; // Just import to make visible Reflect

Reflect.defineMetadata(...)

字符串

f45qwnt8

f45qwnt82#

仅供参考,尝试解决相同的错误消息时,希望reflect-metadata不导入:)

npm i --save-dev @types/reflect-metadata

字符串
解决了这个问题,即使安装消息说类型包含在reflect-metadata包中。

hvvq6cgz

hvvq6cgz3#

在我的情况下,当我将typescript升级到版本5时就发生了这种情况。
我在tsconfig.json里面有reflect-metadata

"types": ["reflect-metadata"]

字符串
只是去掉了它,我的问题。

相关问题