Declare uma matriz em TypeScript

102

Estou tendo problemas para declarar ou usar um array booleano no Typescript, não tenho certeza qual está errado. Recebo um undefinederro. Devo usar a sintaxe JavaScript ou declarar um novo objeto Array?

Qual dessas é a maneira correta de criar o array?

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

Como eu inicializaria todos os valores para serem falsos?

Como eu acessaria os valores, posso acessá-los como, columns[i] = true;..?


fonte
1
a sintaxe correta é let array: boolean []; e sim, você pode acessá-lo da maneira que está usando
Girdhari Agrawal

Respostas:

232

Aqui estão as diferentes maneiras pelas quais você pode criar uma matriz de booleanos no texto digitado:

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>();

Você pode acessá-los usando o índice:

console.log(arr[5]);

e você adiciona elementos usando push:

arr.push(true);

Ao criar a matriz, você pode fornecer os valores iniciais:

let arr1: boolean[] = [true, false];
let arr2: boolean[] = new Array(true, false);
Nitzan Tomer
fonte
1
Existe um bom motivo para haver tantas maneiras diferentes de declarar um Array? arr5 e arr6 parecem particularmente chocantes para mim.
Raphaël Gomès
2
@ RaphaëlGomès É assim que o javascript é. Confira esta pergunta sobre arr5 e arr6: stackoverflow.com/questions/8205691/…
Nitzan Tomer
@juanjinario não realmente. existem dois problemas com isso. a primeira é que você não atribui um valor real à variável e, portanto, array.push(...)resultará em um erro de execução. também, senão você não incluiu nenhum tipo para o array que você obterá never[].
Nitzan Tomer
9

é assim que você pode criar uma matriz booleana no TS e inicializá-la com false:

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

ou outra abordagem pode ser:

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

você pode especificar o tipo após os dois pontos que neste caso é um array booleano

Kayani
fonte
5

Tipo específico de array no texto datilografado

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
Mark Macneil Bikeio
fonte
1

Uma maneira de declarar uma matriz digitada 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
fonte
0
let arr1: boolean[] = [];

console.log(arr1[1]);

arr1.push(true);
snehal badhe
fonte