【问题标题】:Declare an array in TypeScript在 TypeScript 中声明一个数组
【发布时间】:2016-12-16 22:26:08
【问题描述】:

我在 Typescript 中声明或使用布尔数组时遇到问题,不确定哪个是错误的。我收到undefined 错误。我应该使用 JavaScript 语法还是声明一个新的 Array 对象?

以下哪一种是创建数组的正确方法?

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

如何将所有值初始化为 false?

我将如何访问这些值,我可以像columns[i] = true;..那样访问它们吗?

【问题讨论】:

  • 正确的语法是 let array: boolean[];是的,您可以按照您使用的方式访问它

标签: javascript arrays typescript


【解决方案1】:

这就是你如何在 TS 中创建一个布尔数组并用 false 初始化它:

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

或者另一种方法可以是:

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

你可以在冒号后面指定类型,在这种情况下是布尔数组

【讨论】:

    【解决方案2】:

    以下是在 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);
    

    【讨论】:

    • 有这么多不同的声明数组的方式有充分的理由吗? arr5 和 arr6 对我来说似乎特别刺耳。
    • @RaphaëlGomès 这就是 javascript 的方式。查看有关 arr5 和 arr6 的问题:stackoverflow.com/questions/8205691/…
    • @juanjinario 不是真的。它有两个问题。第一个是您没有为变量分配实际值,因此array.push(...) 最终会出现运行时错误。另外,因为您没有包含任何类型的数组,您将获得never[]
    【解决方案3】:

    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
    

    【讨论】:

      【解决方案4】:

      TypeScript 中声明类型化数组的方法很少

      const booleans: Array<boolean> = new Array<boolean>();
      // OR, JS like type and initialization
      const booleans: boolean[] = [];
      
      // or, if you have values to initialize 
      const booleans: Array<boolean> = [true, false, true];
      // get a vaue from that array normally
      const valFalse = booleans[1];
      

      【讨论】:

        【解决方案5】:
        let arr1: boolean[] = [];
        
        console.log(arr1[1]);
        
        arr1.push(true);
        

        【讨论】:

          猜你喜欢
          • 2017-04-29
          • 2019-12-02
          • 1970-01-01
          • 2023-03-30
          • 2015-08-03
          • 2013-12-17
          • 1970-01-01
          • 1970-01-01
          • 2020-02-15
          相关资源
          最近更新 更多