Объявить массив в TypeScript

107

У меня проблемы с объявлением или использованием логического массива в Typescript, не знаю, что неверно. Я получаю undefinedошибку Должен ли я использовать синтаксис JavaScript или объявить новый объект Array?

Какой из них является правильным способом создания массива?

private columns = boolean[];
private columns = [];
private columns = new Array<boolean>();

Как мне инициализировать все значения как ложные?

Как мне получить доступ к значениям, могу ли я получить к ним доступ, например, columns[i] = true;..?


источник
1
правильный синтаксис: let array: boolean []; и да, вы можете получить к нему доступ тем же способом, которым вы пользуетесь
Гирдхари Агравал

Ответы:

240

Вот различные способы создания массива логических значений в машинописном тексте:

let arr1: boolean[] = [];
let arr2: boolean[] = new Array();
let arr3: boolean[] = Array();

let arr4: Array<boolean> = [];
let arr5: Array<boolean> = new Array();
let arr6: Array<boolean> = Array();

let arr7 = [] as boolean[];
let arr8 = new Array() as Array<boolean>;
let arr9 = Array() as boolean[];

let arr10 = <boolean[]> [];
let arr11 = <Array<boolean>> new Array();
let arr12 = <boolean[]> Array();

let arr13 = new Array<boolean>();
let arr14 = Array<boolean>();

Вы можете получить к ним доступ, используя индекс:

console.log(arr[5]);

и вы добавляете элементы с помощью push:

arr.push(true);

При создании массива вы можете указать начальные значения:

let arr1: boolean[] = [true, false];
let arr2: boolean[] = new Array(true, false);
Ницан Томер
источник
1
Есть ли веская причина для стольких разных способов объявления массива? arr5 и arr6 кажутся мне особенно неприятными.
Raphaël Gomès
2
@ RaphaëlGomès Это такой же javascript. Посмотрите этот вопрос относительно arr5 и arr6: stackoverflow.com/questions/8205691/…
Ницан Томер
@juanjinario не совсем. с этим есть две проблемы. во-первых, вы не присваиваете реальное значение переменной, что array.push(...)приведет к ошибке выполнения. также, поскольку вы не включили какой-либо тип для массива, который вы получите never[].
Ницан Томер,
9

вот как вы можете создать массив логических значений в TS и инициализировать его с помощью false:

var array: boolean[] = [false, false, false]

или другой подход может быть:

var array2: Array<boolean> =[false, false, false] 

вы можете указать тип после двоеточия, который в данном случае является логическим массивом

Каяни
источник
5

Конкретный тип массива в машинописном тексте

export class RegisterFormComponent 
{
     genders = new Array<GenderType>();   // Use any array supports different kind objects

     loadGenders()
     {
        this.genders.push({name: "Male",isoCode: 1});
        this.genders.push({name: "FeMale",isoCode: 2});
     }
}

type GenderType = { name: string, isoCode: number };    // Specified format
Марк Макнейл Бикейо
источник
2

Один из способов объявления типизированного массива в TypeScript:

const booleans = new Array<Boolean>();

// or, if you have values to initialize 
const booleans: Array<Boolean> = [true, false, true];
const valFalse = booleans[1];
Arghya C
источник
0
let arr1: boolean[] = [];

console.log(arr1[1]);

arr1.push(true);
снехал бадхе
источник