Javascript 与数组.from()等效的TypeScript

Javascript 与数组.from()等效的TypeScript,javascript,arrays,typescript,dom,Javascript,Arrays,Typescript,Dom,在TypeScript中是否有一个数组.from()等价物? 或者,有没有一种方法可以使用浏览器中的Array.from()实现 我正在尝试将节点列表转换为数组,以便使用数组方法。 这就是我对香草JavaScript所做的: const divs = document.querySelectorAll('div'); const arrDivs = Array.from(divs); const result = arrDivs.map(e => {...}); Array.from()

TypeScript中是否有一个
数组.from()
等价物?
或者,有没有一种方法可以使用浏览器中的
Array.from()
实现

我正在尝试将节点列表转换为数组,以便使用数组方法。
这就是我对香草JavaScript所做的:

const divs = document.querySelectorAll('div');
const arrDivs = Array.from(divs);
const result = arrDivs.map(e => {...});
Array.from()
在TypeScript中不可用,它有自己的
Array
实现

因此,我想我必须将其转换为
元素[]
HTMLElement[]
如下:

const arrDivs = <HTMLElement[]>divs;
这似乎忽略了TypeScript固有的类型安全性。所以我想知道是否有更好或更正确的方法来做到这一点?或者以某种方式调用现代浏览器中的本机
Array.from()
函数

更新
我的编译器告诉我,
Property'from'在类型“ArrayConstructor”上不存在。

以下是我的编译器选项:

"compilerOptions": {
   "sourceMap": true,
    "outDir": "dist",
    "strict": true,
    // Linting rules:
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
}

确保您在
tsconfig.json
中的目标是ES2015或更高版本:

"compilerOptions": {
   "target": "es2015"
}
当您忽略该字段时,它是一个JS版本,可以
数组。from
不是一件事。

这对我很有效

使用数组上方的
/@ts ignore
。from(divs)行


运行代码。

所有javascript都可以从typescript获得,而不是从数组获得。
from()在typescript中不可用,它有自己的数组实现。
,不,typescript没有实现任何东西,它只是为javascript提供类型支持。如果您可以用JavaScript做一些事情,那么您也可以用TypeScript做一些事情-在一个更安全、更好的环境中
数组。from()
您的编译器选项是什么?您应该能够使用
[…divs].map(…)
。可能还缺少一些编译器选项。这是有道理的。实际上,我更愿意将其保留到ES3,因为这段代码将在电视浏览器上运行,其中一些正在运行非常旧的JS解释器。如果这是您的目标,那么我会通过webpack使用babel和typescript的组合。我会以typescript中的
es2020
为目标,并指示
babel loader
动态提供polyfill,并将代码库降低到支持我在
中列出的目标浏览器所需的任何位置。browserslistrc
。最终以ES5为目标,在HTML集合上使用for循环。
"compilerOptions": {
   "target": "es2015"
}