Angular项目TS2339报错:Users类型无token属性、Object无values属性
报错2:Property 'values' does not exist on type 'ObjectConstructor'
触发原因
Object.values是ES2017版本才新增的原生API,你的TypeScript编译配置中设置的目标语法版本低于ES2017,或者没有引入对应ES版本的类型声明,因此TypeScript无法识别该方法。
解决方法
- 调整编译配置(推荐):打开项目根目录的
tsconfig.json,修改compilerOptions配置项:
{ "compilerOptions": { "target": "ES2017", "lib": ["ES2017", "dom"] // 其他原有配置保持不变 } }
- 兼容低版本方案:如果需要兼容更低版本的JS运行环境,可以用
Object.keys替代实现相同逻辑,无需修改编译配置:
// 替换原有Object.values的代码行 return Object.keys(this.iss).map(key => this.iss[key]).includes(payload.iss);
小优化:原代码中
indexOf(payload.iss) > -1 ? true : false可以直接简化为includes(payload.iss),直接返回布尔值即可,无需额外判断。
内容的提问来源于stack exchange,提问作者Mohamed-Rmili
相关产品推荐
相关产品推荐

