打字稿错误:Map.values() 给出 IterableIterator 不是 Iterable

2023-11-25

当我尝试迭代返回的值时,Typescript 给了我这个错误Map.values()(其中 Map 的类型为 ):

错误 TS2495:类型“IterableIterator”不是数组类型或字符串类型。

根据 ES6doc Map.values()应该返回一个Iterable不是 IterableIterator,我应该能够在 for-of 循​​环中使用它。

这在以下情况下效果很好node:

var data = [
  {id: 0},
  {id: 1},
  {id: 3}
];
var m = new Map(data.map(n => [n.id,n]));
for(var i of m.values()) { console.log(i) }

这给出了错误tsc:

interface Foo {
  id: number;
}
var data: Foo[] = [
  {id: 0},
  {id: 1},
  {id: 2}
];
var m = new Map<number,Foo>(data.map(n => <[number,Foo]>[n.id,n]));
for(var i of m.values()) { console.log(i) }

我收到来自以下位置的地图声明@types/[email protected]所以我想问题出在这个声明中?

其他版本和配置信息:

> tsc --version
Version 2.0.3
> cat tsconfig.json 
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "typeRoots": [
      "./node_modules/@types/"
    ]
  },
  "compileOnSave": true,
  "exclude": [
    "node_modules/*",
    "**/*-aot.ts"
  ]
}

我不明白一些隐含的东西tsc正在做 reltsconfig.json。阅读tsconfig.json 文档让事情变得更清楚:

首先,我是这样转译的tsc mytypescript.ts这(愚蠢地)导致 Typescript 默默地忽略tsconfig.json文件,这意味着它使用默认的 ES5.但这部分有效,因为tsc仍在寻找core-js包含 ES6 声明的声明,例如 Map、Iterable 等。这让我的调试有点麻烦。

其次,在让 Typescript 实际获取我的配置后,配置无论如何都是错误的。我实际上不需要或不想要这些声明@types/core-js(很确定)。是的,我将在我的项目中使用 core-js 作为 polyfill,但是 Typescript自带的ES6 内容的声明typescript/lib/lib.es6.d.ts,以及那些在@types/core-js又老又奇怪又蹩脚什么的......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打字稿错误:Map.values() 给出 IterableIterator 不是 Iterable 的相关文章

随机推荐

  • 在 Windows 8 桌面应用程序上使用 MediaCapture

    在 Windows 8 桌面应用程序上 我需要使用 C 4 5 中的相机拍照 我尝试使用 CameraCaptureUI 类 但它在桌面应用程序上不可用 所以我尝试使用 MediaCapture 类 它可用于 Metro 应用程序或桌面应用
  • 朱利安方法来执行Python的yield(以及yield from)

    朱利安的收益率 以及收益率 方法是什么就像蟒蛇一样 编辑 我将尝试在 python 中添加小示例 想想 4x4 棋盘 找出国际象棋王可以走的每N步长路径 不要浪费内存 gt 为每条路径生成生成器 如果我们用数字签署每个位置 0 1 2 3
  • 在实现中重新包含标头

    假设我有一个标题foo h像这样 ifndef FOO H define FOO H include
  • Spinner 无法加载整数数组?

    我有一个应用程序 其中有一个微调器 我想用一些数字 4 8 12 16 填充它 我使用上述项目在 strings xml 中创建了一个整数数组对象 将 Spinner 的条目设置为整数数组 当我运行应用程序时 我得到 04 19 23 38
  • Vnext 参数 1:无法从“string”转换为“System.IO.Stream”

    我正在尝试创建一个Next 项目中的通用序列化器当我调用 StreamWriter 的构造函数时 它会抛出此编译器错误 错误 CS1503 参数 1 无法从 字符串 转换为 System IO Stream Test ASP NET Cor
  • 从 Javascript 更改 CSS 规则集

    是否可以动态更改 CSS 规则集 即 当用户单击小部件时 某些 JS 会更改 CSS 规则集 这个特定的 CSS 规则集应用于页面上的许多元素 通过类选择器 我想在用户单击小部件时对其进行修改 以便所有具有class change 可以 但
  • 使用 Asp.net 路由的 IRouteHandler.GetHttpHandler 中的会话为 null

    我试图在 IRouteHandler 类的 GettHttpHandler 方法中启用会话 但会话始终为空 有人可以告诉我我做错了什么吗 在 global asax 我有 RouteTable Routes Add All new Rout
  • 多次加载 DLL?

    我正在使用LoadLibrary在 Windows 中加载 DLL 的函数 我的问题是 如果我对同一个 DLL 多次调用此方法 我是否会获得该 DLL 的不同实例的句柄 或者它们都引用同一个实例 此外 这种行为与 Linux SO 文件有何
  • 有什么解决方案可以将验证码添加到 Django-allauth 吗?

    有没有将验证码与 django allauth 一起使用的解决方案 我想在注册表上使用验证码进行标准电子邮件 密码注册 我也需要用 django allauth 来做到这一点 并发现实现django recaptcha封装起来比较简单 配置
  • Node.js (ES6 / Babel) 中 import X 和 import * as X 的区别?

    我有一个 Node js 库lib用 ES6 编写 编译为Babel 其中我导出以下子模块 use strict import as config from config import as db from db import as sto
  • 编译时按架构排除go源文件

    我正在为 Windows 编写一个 Go 程序 其中包含多个包 其中一个包是使用 CGo 调用一些 h 和 c 文件中定义的一些函数 这些 c 文件依赖于 windows h 由于在 Windows 平台上开发非常繁琐 我想制作这个文件中的
  • 防止递归函数中出现 StackOverFlow

    我有一个递归函数BaseClass这依赖于一个protected virtual函数的返回条件 子类可能会错误地覆盖此函数并导致StackOverFlow例外 最糟糕的是有一些缓慢的网络调用 并且异常不会很快发生 许多资源浪费了很长一段时间
  • Swift DateFormatter 可选毫秒[重复]

    这个问题在这里已经有答案了 我有以下代码来解析 ISO8601 日期 let dateFormatter DateFormatter dateFormatter dateFormat yyyy MM dd T HH mm ss SSSZZZ
  • Jsoup.parse() 与 Jsoup.parse() - 或者 Jsoup 中的 URL 检测如何工作?

    Jsoup 有 2htmlparse 方法 解析 字符串 html 由于没有指定基本 URI 因此是绝对 URL 检测依赖于包含标签的 HTML 解析 字符串 html 字符串 baseUri HTML 所在的 URL 被检索自 用于将相对
  • 如何在 Mac OS X 中实现全局键盘挂钩?

    我知道这可以在 Windows 上完成XGrabKeyX11可以用 但是Mac OS X呢 我想创建一个类 允许设置即使应用程序窗口处于非活动状态也可以调用的快捷键 Cocoa 中 还没有 不支持这一点 您仍然可以使用旧的 Carbon 库
  • 在 IPython Notebook 中同时使用 Python 2.x 和 Python 3.x

    我使用 IPython 笔记本 并且希望能够选择在 IPython 中创建 2 x 或 3 x python 笔记本 我最初有Anaconda 使用 Anaconda 时 必须更改全局环境变量以选择所需的 Python 版本 然后才能启动
  • Mysql 错误 1452 - 无法添加或更新子行:外键约束失败

    我遇到了一个奇怪的问题 我正在尝试向引用另一个表的一个表添加外键 但由于某种原因失败了 由于我对 MySQL 的了解有限 唯一可能怀疑的是另一张表上有一个外键引用了我试图引用的表 我做了一个SHOW CREATE TABLE对两个表进行查询
  • 如何使用copy_from_user的正确方法?

    我正在尝试使用以下函数将值从用户空间复制到内核空间 static ssize t device write struct file filp const char buff size t len loff t off unsigned lo
  • D3D11:如何将 GDI 文本绘制到 GXDI 表面? (无 D2D)

    我需要一些帮助来使用 GDI 和 D3D11 将文本绘制到纹理 我尝试使用 D2D DirectWrite 但它仅支持 D3D10 而不支持我需要的 D3D11 到目前为止我尝试的一切都失败了 现在我想使用GDI方法来写入纹理 所以我用这个
  • 打字稿错误:Map.values() 给出 IterableIterator 不是 Iterable

    当我尝试迭代返回的值时 Typescript 给了我这个错误Map values 其中 Map 的类型为 错误 TS2495 类型 IterableIterator 不是数组类型或字符串类型 根据 ES6doc Map values 应该返