VS中Angular集成.NET MVC报错:无法找到PropertyKey
解决Angular 5与.NET MVC集成时的
Cannot find name 'PropertyKey'错误 嘿,我之前踩过这个坑,这个错误基本是TypeScript版本、core-js类型定义和tsconfig配置不兼容导致的,结合你的配置情况,给你几个可行的解决步骤:
1. 匹配Angular 5对应的TypeScript版本
Angular 5.x对TypeScript版本有严格要求,必须是2.4.x到2.6.x之间的版本。你可以先检查当前项目的TypeScript版本:
npm list typescript
如果版本不在这个范围内,安装对应兼容版本,比如:
npm install typescript@2.6.2 --save-dev
2. 调整tsconfig.json配置
你的tsconfig里target设为es2017,但搭配的core-js是2.4.1(对应ES2015/ES6),容易出现类型定义不匹配。建议修改如下:
{ "compileOnSave": false, "compilerOptions": { "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es5", // 改成es5或es2015,更适配core-js@2.4.1 "typeRoots": [ "node_modules/@types" ], "lib": [ "dom", "es2015", "es2017" ] // 新增es2015,确保PropertyKey类型被识别 }, "exclude": [ "node_modules" ] }
PropertyKey是ES2015引入的类型,所以lib里必须包含es2015才能让TypeScript识别它。
3. 安装对应版本的core-js类型定义
core-js@2.4.1需要搭配@types/core-js@2.5.x版本的类型定义,你可以安装它:
npm install @types/core-js@2.5.4 --save-dev
4. 移除旧的typings依赖
你的package.json里有typings@1.3.2,这是旧的类型管理工具,现在TypeScript已经统一用@types了,它可能会和现有类型定义冲突,建议移除:
npm uninstall typings --save
5. 清理依赖并重新安装
最后清理旧依赖,避免缓存问题:
- 删除项目根目录的
node_modules文件夹和package-lock.json文件 - 运行
npm install重新安装所有依赖 - 重启你的IDE(比如Visual Studio),有时候IDE缓存会导致类型定义不更新
按照这些步骤操作后,应该就能解决这个PropertyKey找不到的问题了。
内容的提问来源于stack exchange,提问作者Aatish Kumar
相关产品推荐
相关产品推荐

