Tìm kiếm trang web

Các loại khi phân rã mảng


function f([a,b,c]) {
  // this works but a,b and c are any
}

có thể viết điều gì đó như vậy không?

function f([a: number,b: number,c: number]) {
  // being a, b and c typed as number 
}

Câu trả lời #1

Đây là cú pháp đúng để phá cấu trúc một mảng bên trong danh sách đối số:

function f([a,b,c]: [number, number, number]) {

}

Câu trả lời #2

Vâng, đúng vậy. Trong TypeScript, bạn làm điều đó với các kiểu mảng một cách đơn giản, bằng cách tạo các tuple.

type StringKeyValuePair = [string, string];

Bạn có thể làm những gì bạn muốn bằng cách đặt tên cho mảng:

function f(xs: [number, number, number]) {}

Nhưng bạn sẽ không đặt tên cho tham số nội bộ. Một khả năng khác là sử dụng giải cấu trúc theo cặp:

function f([a,b,c]: [number, number, number]) {}

Câu trả lời #3

Với TypeScript 4.0, các kiểu tuple giờ đây có thể cung cấp nhãn

type Range = [start: number, end: number]

Bài viết liên quan