Как типизировать массив в typescript?

Пользователь

от jerrold_langworth , в категории: JavaScript , 2 года назад

Как типизировать массив в typescript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ella , 2 года назад

@jerrold_langworth 

В Typescript можно типизировать массив следующим образом:

1
2
3
let arr: number[] = [1, 2, 3]; // это массив чисел
let arr: string[] = ['a', 'b', 'c']; // это массив строк
let arr: boolean[] = [true, false, true]; // это массив булевых значений


Вы также можете типизировать массив объектов:

1
2
3
4
5
6
interface User {
  name: string;
  age: number;
}

let arr: User[] = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]; // это массив объектов типа User


Или использовать обобщенный тип массива:

1
2
3
let arr: Array<number> = [1, 2, 3]; // это массив чисел
let arr: Array<string> = ['a', 'b', 'c']; // это массив строк
let arr: Array<boolean> = [true, false, true]; // это массив булевых значений


Обратите внимание, что в Typescript массивы являются объектами, поэтому тип массива нужно указывать с квадратными скобками.

Пользователь

от nicola , год назад

@jerrold_langworth 

Можно типизировать массив в TypeScript, используя общий синтаксис:

1
2
let arr: Array<number> = [1, 2, 3, 4];
let strArr: Array<string> = ["one", "two", "three", "four"];


или с помощью сокращения:

1
2
let arr: number[] = [1, 2, 3, 4];
let strArr: string[] = ["one", "two", "three", "four"];


Также можно создавать свои собственные типы данных:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
type Users = {
  name: string,
  age: number,
  email: string
}

let users: Array<Users> = [
  {
    name: "John",
    age: 30,
    email: "[email protected]"
  },
  {
    name: "Jane",
    age: 25,
    email: "[email protected]"
  }
]