ts中如何动态的定义变量的类型?

比如当type为1的时候 data的数据类型为number 当type为2的时候 data的数据类型为string

阅读 2.5k
2 个回答

type DataType = {
1: number;
2: string;
}
const type = 2
const type2 = 1
const data1 : DataType[typeof type] = '1'
const data2 : DataType[typeof type2] = 1

这样?

type A = { type: 1, data: string; } | { type: 2, data: number; }
const fn = (v: A) => {
    if (v.type === 1) {
        // v.data 
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进