Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在TypeScript中为常量定义接口或类型?_Javascript_Typescript_Types_Interface - Fatal编程技术网

Javascript 如何在TypeScript中为常量定义接口或类型?

Javascript 如何在TypeScript中为常量定义接口或类型?,javascript,typescript,types,interface,Javascript,Typescript,Types,Interface,我试图为我的数据集定义接口或类型,但出现了一些错误。下面是我使用的错误接口和代码: interface IVehicle { [key: number]: { model: string, year: number }; } interface IVehicles { [type: string]: Array<IVehicle> } const DATASET: IVehicles = { CAR: [ ["BMW",

我试图为我的数据集定义接口或类型,但出现了一些错误。下面是我使用的错误接口和代码:

interface IVehicle {
    [key: number]: { model: string, year: number };
}
interface IVehicles {
    [type: string]: Array<IVehicle>
}

const DATASET: IVehicles = {
    CAR: [
        ["BMW", {
            model: "520d",
            year: 2015,
        }],
        ["Audi", {
            model: "A4",
            year: 2011,
        }]
    ],
    MOTORCYCLE: [
        ["YAMAHA", {
            model: "R6",
            year: 2020,
        }],
        ["DUCATI", {
            model: "Monster",
            year: 2018,
        }]
    ]
}

console.log(DATASET);

键入代码:

您可以使用

type IVehicle = [string, { model: string, year: number }];

interface IVehicles {
    [type: string]: Array<IVehicle>
}
typeIVehicle=[string,{model:string,year:number}];
接口车辆{
[类型:字符串]:数组
}

我想你需要一个元组类型,
{[key:number]:{…}
对于一个数组来说没有意义,在这个数组中,你只需要两个值,其中一个值不是那种形状的对象。谢谢你的帮助!这个代码有效。
type IVehicle = [string, { model: string, year: number }];

interface IVehicles {
    [type: string]: Array<IVehicle>
}