首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhpStorm抱怨没有找到一个类型,但是仍然可以打开定义它的文件。

PhpStorm抱怨没有找到一个类型,但是仍然可以打开定义它的文件。
EN

Stack Overflow用户
提问于 2018-10-08 08:07:25
回答 1查看 119关注 0票数 0

我有一个用AngularJS用TypeScript编写的PhpStorm项目。在与Webpack一起编译时,我得到以下错误:

错误:(42,43) 43 2694:命名空间“角”没有导出成员'angularFileUpload‘。

所以某个地方有个问题。但是,困扰我的是,PhpStorm仍然能够解析类型并打开定义它的文件,同时抱怨无法解析该类型:

这里有一个动画gif,展示了这种行为:

我对另一个图书馆也有同样的问题。

实际上,试图扩展ng命名空间的类型似乎稍后会被覆盖,我找不到位置。

我包含了@types/ng-file-upload,并在tsconfig中定义了根类型,如动画gif中所示。

谢谢你能给我的任何建议。

编辑

下面是我的package.json文件的内容:

代码语言:javascript
复制
{
  "name": "...",
  "version": "0.0.1",
  "description": "...",
  "repository": {
    ...
  },
  "scripts": {
    "gulp": "gulp build --theme=default",
    "gulp:prod": "gulp build --theme=default --env=prod",
    "gulp:watch": "gulp build --theme=default --watch",
    "gulp:watch:prod": "gulp --theme=default --watch --env=prod",
    "webpack:native:watch": "webpack --config build/webpack/config/root.config.ts --env.app=native --env.target=julien-localhost --watch",
    "webpack:native:prod": "webpack --config build/webpack/config/root.config.ts --env.app=native --env.target=production --env.env=prod",
    "webpack:angularjs/admin:watch": "webpack --config build/webpack/config/root.config.ts --env.app=angularjs/admin --env.target=julien-localhost --watch",
    "webpack:angularjs/admin:prod": "webpack --config build/webpack/config/root.config.ts --env.app=angularjs/admin --env.target=production --env.env=prod"
  },
  "dependencies": {
    "angular": "^1.6.9",
    "angular-animate": "^1.6.9",
    "angular-aria": "^1.6.9",
    "angular-clipboard": "~1.6.2",
    "angular-local-storage": "~0.7.1",
    "angular-material": "^1.1.9",
    "angular-messages": "^1.6.9",
    "angular-moment-picker": "^0.10.2",
    "angular-resource": "^1.6.9",
    "angular-sanitize": "^1.6.9",
    "angular-translate": "~2.17.0",
    "angular-ui-notification": "^0.3.6",
    "angular-ui-router.statehelper": "~1.3.1",
    "bootstrap": "^4.1.3",
    "font-awesome": "~4.7.0",
    "inversify": "^4.13.0",
    "jquery": "^3.3.1",
    "jquery-backstretch": "^2.1.16",
    "jquery-mousewheel": "^3.1.13",
    "jquery-ui": "^1.12.1",
    "lodash": "^4.17.10",
    "mainloop.js": "^1.0.4",
    "malihu-custom-scrollbar-plugin": "^3.1.5",
    "moment": "~2.20.1",
    "moment-timezone": "^0.5.14",
    "ng-file-upload": "~12.2.13",
    "parsleyjs": "^2.8.1",
    "particles.js": "^2.0.0",
    "q": "^1.5.1",
    "raven-js": "^3.26.4",
    "reflect-metadata": "^0.1.12",
    "satellizer": "^0.15.5",
    "scrollmonitor": "^1.2.4",
    "toastr": "^2.1.4"
  },
  "devDependencies": {
    "@fortawesome/fontawesome-free": "^5.3.1",
    "@types/angular": "~1.6.43",
    "@types/angular-mocks": "^1.5.11",
    "@types/angular-route": "^1.3.4",
    "@types/angular-ui-notification": "0.0.4",
    "@types/angular-ui-router": "^1.1.40",
    "@types/es6-promise": "^3.3.0",
    "@types/jquery": "^3.3.6",
    "@types/lodash": "^4.14.104",
    "@types/modernizr": "^3.5.2",
    "@types/ng-file-upload": "~12.2.2",
    "@types/node": "^9.6.34",
    "@types/q": "^1.5.1",
    "@types/reflect-metadata": "^0.1.0",
    "@types/source-map": "~0.5.7",
    "@types/uglify-js": "^2.6.30",
    "@types/webpack-env": "^1.13.6",
    "@uirouter/angularjs": "^1.0.15",
    "awesome-typescript-loader": "^3.4.1",
    "browser-sync": "~2.23.6",
    "browser-sync-webpack-plugin": "^2.0.1",
    "chalk": "^2.3.1",
    "circular-dependency-plugin": "^4.4.0",
    "clone": "2.1.2",
    "copy-webpack-plugin": "~4.4.1",
    "force-case-sensitivity-webpack-plugin": "^0.2.1",
    "gulp-angular-embed-templates": "^2.3.0",
    "gulp-autoprefixer": "^5.0.0",
    "gulp-compass": "^2.1.0",
    "gulp-ng-annotate": "^2.1.0",
    "gulp-yaml-packages": "~1.0.15",
    "html-webpack-plugin": "~2.30.1",
    "loader-utils": "^1.1.0",
    "ngtemplate-loader": "~2.0.1",
    "node-neat": "^2.0.0-beta.0",
    "raw-loader": "0.5.1",
    "ts-loader": "~3.5.0",
    "ts-node": "~5.0.0",
    "tslib": "^1.9.0",
    "tslint": "~5.9.1",
    "tslint-loader": "~3.5.3",
    "typescript": "^2.9.2",
    "url-loader": "0.6.2",
    "webpack": "^3.11.0",
    "webpack-merge": "~4.1.1",
    "webpack-strip-block": "github:jballant/webpack-strip-block"
  }
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-08 12:52:44

我发现了问题..。

我的tsconfig.json文件包含:

代码语言:javascript
复制
{
    "compilerOptions": {
        [...]
        "types": ["reflect-metadata", "webpack-env"]
    }
}

这就是问题所在,它将编译器包含的类型限制为选项中定义的类型:

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types

如果你处于同样的情况,你还需要再做一次检查。

如果能帮上忙的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52697921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档