迹忆客 专注技术分享

当前位置:主页 > 学无止境 >

TS 中 Source has N elements but target allows only 1 错误解决

作者:迹忆客 最近更新:2022/12/31 浏览次数:

当我们声明元组而不是数组时,会出现错误“Source has N element(s) but target allows only 1”。 要解决此错误,需要将变量的类型从 [Type] 更改为 Type[] 或调整元组的长度。

下面是错误如何发生的示例。

// ⛔️ Error: Source has N element(s)
// but target allows only 1
const arr: [number] = [1, 2, 3];

TS 中 Source has N elements but target allows only 1

我们声明了一个元组,它有一个数字类型的元素,但试图向它添加 3 个元素并得到了错误。

要解决这个问题,请声明一个数组而不是元组。

const arr: number[] = [1, 2, 3];

上面的行声明了一个数字数组,而不是一个包含单个数字的元组。

不同之处在于 - [Type] 是一个包含单个 Type 元素的元组,而 Type[] 是一个包含 Type 类型元素的数组。

元组类型用于表示具有固定数量元素的数组,这些元素的类型是已知的,但可以不同。

如果需要声明二维数组,请使用 Type[][] 语法。

const arr: number[][] = [
  [1, 2, 3],
  [3, 4, 5],
];

下面是一个如何声明对象数组的示例。

const arr: { name: string; age: number }[] = [
  { name: 'Alice', age: 27 },
  { name: 'Bob', age: 28 },
];

如果我们的变量声明冲突,请使用类型别名。

type Employee = {
  id: number;
  name: string;
  salary: number;
};

const arr: Employee[] = [
  {
    id: 1,
    name: 'Alice',
    salary: 100,
  },
  {
    id: 2,
    name: 'Bob',
    salary: 200,
  },
];

上面的代码片段声明了一个 Employee 类型的对象数组。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便