代码之家  ›  专栏  ›  技术社区  ›  podeig

TypeScript中包含对象的数组的类型定义

  •  3
  • podeig  · 技术社区  · 8 年前

    如何在TypeScript中为en这样的数组定义类型:

    export const AlternativeSpatialReferences: Array< ??? > = [
        {
            '25833': 25833
        },
        {
            '25832': 25832
        },
        {
            '25831': 25831
        },
        {
            'Google': 4326
        } 
    ];
    

    现在我只使用数组<{}>,但要正确定义。

    2 回复  |  直到 8 年前
        1
  •  8
  •   klugjo    8 年前

    如果您想定义一个对象,该对象的属性名在编译时未知,而值是数字,那么应该使用“索引签名”(感谢@JoeClay):

    interface MyObject {
        [propName: string]: number;
    }
    

    然后你可以写:

    export const AlternativeSpatialReferences: MyObject[] = [
        {
            '25833': 25833
        },
        {
            '25832': 25832
        },
        {
            '25831': 25831
        },
        {
            'Google': 4326
        } 
    ];
    
        2
  •  4
  •   Pranay Rana    8 年前

    在您使用的typescript中 any 类型

    任何用于-需要描述我们在编写应用程序时不知道的变量类型。

     Array<any>
    

    如果您想使用某种强类型,那么应该创建具有两个属性的新类

    public class KeyValue
    {
      key:string;
      value:number;
    }
    
     let myarray: KeyValue[] = new Array<KeyValue>();
     myarray.push({key: '25833' , value : 25833});
     myarray.push({key: 'Google' , value : 123});
    

    并以强类型转换当前数组值。