vue.js - typescript 如何从另一个参数的类型推断一个参数的类型
type ChartType = 'bar' | 'line' | 'pie';
interface PropsType {
type: EChartType;
xData: **** ;
seriesData: **** ;
}
const props = defineProps<PropsType>();
如何做
当 ChartType='bar' 时,xData 的类型是 string[],seriesData 的类型是 number[]。当 ChartType='line' 时,xData 的类型是 Array<string|number>,seriesData 的类型是 string[]。当 ChartType='pie' 时,xData 的类型是 number[],seriesData 的类型是 {value:string,name:string}[]。
答案#1
这是你问题的答案。
type TPropsType = {
type: "bar"
xData: string[]
seriesData: number[]
} | {
type: "line"
xData: Array<string|number>
seriesData: string[]
} | {
type: 'pie'
xData: number[]
seriesData: {value:string,name:string}[]
}
