Kousha
Kousha

Reputation: 36219

Interface for Array of array of numbers

I have a dataset

"series": [{
    "name": "Events",
    "data": [
        [0,0],
        [0,1],
        [2,2],
        ...
    ]
}]

What's the proper Typescript interface for this? This is not quite right:

export interface MyInterface {
    series: {
        name: string;
        data: number[]
    }
}

Upvotes: 1

Views: 2690

Answers (2)

Dallas Clark
Dallas Clark

Reputation: 4112

I prefer to keep my typings as a single level/hierarchy, if it requires another level to describe the object, I like to create its own interface/type for that object.

Example:

export interface SeriesEvent {
    [0]: number,
    [1]: number
}

export interface Series {
    data: SeriesEvent[]
    name: "Events";
}

export interface MyInterface {
    series: Series
}

Upvotes: 0

thedayturns
thedayturns

Reputation: 10833

If data is always two number elements, you should use a tuple type: [number, number].

interface MyType {
    series: {
        name: string;
        data: [number, number][]
    }[]
};

If not, you should use a 2 dimensional array: number[][].

interface MyType {
    series: {
        name: string;
        data: number[][]
    }[]
};

Upvotes: 3

Related Questions