首页 文章

Typescript参数不正确

提问于
浏览
2

我正在尝试将此TypeScript数组传递给函数 . 我已经尝试了许多参数类型来进行编译,但它们似乎都没有工作 . 这是阵列:

var driverTally = [
                    { driver: 'driver1', numEscorts: 0},
                    { driver: 'driver2', numEscorts: 0},
                    { driver: 'driver3', numEscorts: 0} 
                ];

doStuff(driverTally : Array<[string,number]>){ ... }

编译器一直说:“类型的参数'{driver:string; numEscorts:number;} []'不能分配给'[string,number] []'类型的参数 .

2 回答

  • 2

    如果您不确定类型,可以使用任何类型,

    doStuff(driverTally : any){ ... }
    

    或创建以下类型的类

    export class Driver {
       public string driver;
       public int numEscorts;
    }
    

    然后将您的数组声明为,

    driverstally : Driver[] = [
                        { driver: 'driver1', numEscorts: 0},
                        { driver: 'driver2', numEscorts: 0},
                        { driver: 'driver3', numEscorts: 0} 
                    ];
    

    然后传递给,

    doStuff(driverTally :Driver[] ){ ... }
    
  • 0

    我建议你确定界面:

    interface IDriver {
        drive: string;
        numEscorts: number;
    }
    

    然后使用初始化声明数组:

    public drivers: IDriver[] = [];
    

    您可以将此数组作为函数参数传递:

    doStuff(driverTally: IDriver[] ){ ... }
    

相关问题