interface PointLayerType {
type?: string,
url?: string,
MapZoom?: any;
cameraList?: any[]
}
const ZoomRatio = {
0: 0.75,
1: 0.95,
2: 1.15,
3: 1.35,
4: 1.55,
5: 1.75,
};
const width = 35 * ZoomRatio[MapZoom];//报错 类型“undefined”不能用作索引类型
const height = 40 * ZoomRatio[MapZoom];
const dangerousWidth = 28 * ZoomRatio[MapZoom];
const dangerousHeight = 34 * ZoomRatio[MapZoom];
MapZoom报错:类型“undefined”不能用作索引类型
原因:undefined的类型不可以当作对象的索引类型,比如obj[undefined]就会报错
解决方案:
interface ZoomRatioType{
[MapZoom: number] : number,
}
const ZoomRatio: ZoomRatioType = {
0: 0.75,
1: 0.95,
2: 1.15,
3: 1.35,
4: 1.55,
5: 1.75,
};
MapZoom作为key的类型传入对象