Deklarasikan larik di TypeScript

103

Saya mengalami masalah saat mendeklarasikan atau menggunakan array boolean di Ketikan, tidak yakin mana yang salah. Saya mendapatkan undefinedkesalahan. Apakah saya harus menggunakan sintaks JavaScript atau mendeklarasikan objek Array baru?

Manakah dari berikut ini yang merupakan cara yang benar untuk membuat array?

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

Bagaimana saya menginisialisasi semua nilai menjadi salah?

Bagaimana saya mengakses nilai, dapatkah saya mengaksesnya seperti, columns[i] = true;..?


sumber
1
sintaks yang benar adalah let array: boolean []; dan ya, Anda dapat mengaksesnya seperti yang Anda gunakan
Girdhari Agrawal

Jawaban:

235

Berikut adalah berbagai cara untuk membuat array boolean dalam skrip ketikan:

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

Anda dapat mengaksesnya menggunakan indeks:

console.log(arr[5]);

dan Anda menambahkan elemen menggunakan push:

arr.push(true);

Saat membuat array Anda dapat memberikan nilai awal:

let arr1: boolean[] = [true, false];
let arr2: boolean[] = new Array(true, false);
Nitzan Tomer
sumber
1
Apakah ada alasan bagus untuk memiliki begitu banyak cara berbeda dalam mendeklarasikan Array? arr5 dan arr6 tampak sangat menggelikan bagi saya.
Raphaël Gomès
2
@ RaphaëlGomès Begitulah javascript. Lihat pertanyaan ini tentang arr5 dan arr6: stackoverflow.com/questions/8205691/…
Nitzan Tomer
@juanjinario tidak juga. ada dua masalah dengannya. yang pertama adalah Anda tidak menetapkan nilai riil ke variabel, sehingga array.push(...)akan berakhir dengan error runtime. juga, karena Anda belum memasukkan tipe apa pun untuk array yang akan Anda dapatkan never[].
Nitzan Tomer
9

ini adalah bagaimana Anda dapat membuat array boolean di TS dan menginisialisasinya dengan false:

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

atau pendekatan lain dapat berupa:

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

Anda dapat menentukan tipe setelah titik dua yang dalam hal ini adalah array boolean

Kayani
sumber
5

Tipe larik khusus dalam skrip ketikan

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
Tandai Macneil Bikeio
sumber
1

Salah satu cara untuk mendeklarasikan array yang diketik TypeScriptadalah

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

console.log(arr1[1]);

arr1.push(true);
snehal badhe
sumber