ประกาศอาร์เรย์ใน TypeScript


108

ฉันมีปัญหาในการประกาศหรือใช้อาร์เรย์บูลีนใน typescript ไม่แน่ใจว่าข้อใดผิด ฉันได้รับundefinedข้อผิดพลาด ฉันควรจะใช้ไวยากรณ์ JavaScript หรือประกาศ Array object ใหม่หรือไม่?

ข้อใดเป็นวิธีสร้างอาร์เรย์ที่ถูกต้อง

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

ฉันจะเริ่มต้นค่าทั้งหมดให้เป็นเท็จได้อย่างไร

ฉันจะเข้าถึงค่าได้อย่างไรฉันจะเข้าถึงค่าได้columns[i] = true;อย่างไร .. ?


1
ไวยากรณ์ที่ถูกต้องคือให้ array: boolean []; และใช่คุณสามารถเข้าถึงได้ในแบบที่คุณใช้
Girdhari Agrawal

คำตอบ:


242

ต่อไปนี้เป็นวิธีต่างๆที่คุณสามารถสร้างอาร์เรย์ของบูลีนใน typescript:

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
มีเหตุผลที่ดีในการประกาศ Array หลายวิธีหรือไม่? arr5 และ arr6 ดูเหมือนจะสั่นสะเทือนสำหรับฉันเป็นพิเศษ
RaphaëlGomès

2
@ RaphaëlGomèsมันเป็นวิธีที่จาวาสคริปต์เป็น ลองดูคำถามเกี่ยวกับ arr5 และ arr6: stackoverflow.com/questions/8205691/…
Nitzan Tomer

@juanjinario ไม่ได้จริงๆ มีสองปัญหากับมัน array.push(...)ประการแรกคือคุณไม่ได้กำหนดค่าจริงให้กับตัวแปรและจะพบข้อผิดพลาดรันไทม์ never[]ยังไซน์คุณยังไม่ได้รวมประเภทสำหรับอาร์เรย์ที่คุณจะได้รับการใด ๆ
Nitzan Tomer

9

นี่คือวิธีที่คุณสามารถสร้างอาร์เรย์ของบูลีนใน TS และเริ่มต้นด้วย false:

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

หรือวิธีอื่นสามารถ:

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

คุณสามารถระบุประเภทหลังเครื่องหมายจุดคู่ซึ่งในกรณีนี้คืออาร์เรย์บูลีน


5

ประเภทเฉพาะของอาร์เรย์ใน typescript

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];

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.