Declarar una matriz en TypeScript

102

Tengo problemas para declarar o usar una matriz booleana en TypeScript, no estoy seguro de cuál es el error. Obtengo unundefined error. ¿Se supone que debo usar la sintaxis de JavaScript o declarar un nuevo objeto Array?

¿Cuál de estas es la forma correcta de crear la matriz?

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

¿Cómo inicializaría todos los valores para que fueran falsos?

¿Cómo accedería a los valores, puedo acceder a ellos como, columns[i] = true;..?


fuente
1
la sintaxis correcta es let array: boolean []; y sí, puede acceder a él de la forma en que lo está utilizando
Girdhari Agrawal

Respuestas:

231

Estas son las diferentes formas en que puede crear una matriz de valores booleanos en mecanografiado:

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

Puede acceder a ellos utilizando el índice:

console.log(arr[5]);

y agrega elementos usando push:

arr.push(true);

Al crear la matriz, puede proporcionar los valores iniciales:

let arr1: boolean[] = [true, false];
let arr2: boolean[] = new Array(true, false);
Nitzan Tomer
fuente
1
¿Existe una buena razón para tener tantas formas diferentes de declarar una matriz? arr5 y arr6 me parecen particularmente discordantes.
Raphaël Gomès
2
@ RaphaëlGomès Así es javascript. Consulte esta pregunta sobre arr5 y arr6: stackoverflow.com/questions/8205691/…
Nitzan Tomer
@juanjinario no realmente. hay dos problemas con él. la primera es que no asigna un valor real a la variable, por array.push(...)lo que terminará en un error de tiempo de ejecución. además, no ha incluido ningún tipo para la matriz que obtendrá never[].
Nitzan Tomer
9

así es como puede crear una matriz de booleanos en TS e inicializarla con falso:

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

u otro enfoque puede ser:

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

puede especificar el tipo después de los dos puntos, que en este caso es una matriz booleana

Kayani
fuente
5

Tipo específico de matriz en mecanografiado

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
fuente
1

Una forma de declarar una matriz escrita TypeScriptes

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
fuente
0
let arr1: boolean[] = [];

console.log(arr1[1]);

arr1.push(true);
snehal badhe
fuente