首页 > 解决方案 > 使用 Array.from 时如何设置/定义 var 类型?

问题描述

以下将为我提供唯一的条目,这是我想要的字符串值数组 string[] 中的内容。

const items: string[]= ["a","b","c","d","c","d"];
const uniqueItems = Array.from(new Set(items));

问:但是,如何定义/指定 uniqueItems 的类型?

const items: string[]= ["a","b","c","d","c","d"];
// This does not work
const uniqueItems: string[] = Array.from(new Set(items));

错误是:

TS2322:类型 {}[] 不可分配给类型“string[]”。类型“{}”不可分配给类型“字符串”

vvvvvvvvvvvvvvvvvv

来自 ng --version 的 Linux 信息

标签: javascriptarraysangulartypescripttypes

解决方案


您可以通过告诉 TypeScript 中的元素类型来解决它Set,因为 TypeScript 的 2.9.2 版显然没有正确推断它。

const items: string[]= ["a","b","c","d","c","d"];
const uniqueItems: string[] = Array.from(new Set<string>(items));

利用 in 中Set定义的通用形式lib,我们可以告诉 TypeScript,“这是一组字符串,该死的”:)。


推荐阅读