【问题标题】:Incorrect Typescript parameter打字稿参数不正确
【发布时间】:2018-05-27 01:35:04
【问题描述】:

我正在尝试将此 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][]' 类型的参数。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    如果你不确定类型,你可以使用 any,

    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[] ){ ... }
    

    【讨论】:

    • 我做了一个驱动类。我想我应该马上这样做,但它让我烦恼的是我无法为该函数找到正确的类型。谢谢。
    【解决方案2】:

    我建议你确定接口:

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

    然后用初始化声明数组:

    public drivers: IDriver[] = [];
    

    你可以将这个数组作为函数参数传递:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 2019-01-21
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2022-11-26
      相关资源
      最近更新 更多