从数据库中,我得到以下数组:
const rawData = [
[
426.45,
10000000
],
[
426.5,
66088429300
],
[
427,
1000000
]
]
rawData 包含数据条目的列表。例如rawData [0]是具有两个属性的单个条目- rawData [0] [0] 是 price 和 rawData [0] [1] 是 音量 。可以在Typescript中为此条目创建一个接口吗?
答案 0 :(得分:0)
因此,您正在从数据库中获得2D阵列rawData: number[][]
。您可以使用类似
interface Info {
price: number;
volume: number;
}
,然后将rawData
转换为Info[]
。
答案 1 :(得分:0)
虽然无法定义描述元组的接口(在Typescript中为固定长度数组),但是可以定义类型。这不会获得命名的元素,但是会阻止您访问元组的范围之外。
type RawData = [number, number];
const rawData: RawData[] = [
[
426.45,
10000000
],
[
426.5,
66088429300
],
[
427,
1000000
]
];
for (const [price, volume] of rawData) {
// price is number
// volume is number
}
// Type error: Tuple type [number, number] of length 2 has no element at index 2
for (const [price, volume, extra] of rawData) {
}
然后您可以将数据转换为适当的对象模型,如下所示:
interface Data {
price: number,
volume: number
}
const transformedData: Data[] = rawData.map(([price, volume]) => ({ price, volume }));