打字稿数组解构类型

Typescript array destructuring type

我应该如何输入以下解构数组?

const [first, ...rest] = this.employee.roles;

上面的代码有效,但项目规则强加了 const 类型。

我试过了:

const first: Role;
const rest: Array<Role>;
[first, ...rest] = this.employee.roles;

但是我需要更改 const 以让 [first, ...rest] = this.employee.roles; 上班

下面的代码也可以,但它不会误导人吗?

const [first, ...rest]: Array<Role> = this.employee.roles;

因为 firstRolerestArray<Role> 我不确定这个。

我想要类似这样的东西:

const [first, ...rest]: [first: Role, rest: Array<Role>] = this.employee.roles;

但它没有编译。

是否有一种简洁的输入方式,或者我应该切换到

let first: Role;
let rest: Array<Role>;
[first, ...rest] = this.employee.roles;

我只会使用 onst [first, ...rest]: Array<Role>。如果您愿意,可以使用元组类型键入 is,但您必须将 first 设为可选,因为无法保证 Role[] 将包含任何元素,它可能为空:


const [first, ...rest]: [first?: Role, ...rest: Array<Role>] = roles;

Playground Link