请问如下的数据转换类的定义是否还可以进行优化,在泛型写入的时候进行提示?

结合gpt实现了一个数据类型转换的类如下:



type DataType1 = {
  name: string,
  age: number 
}

type DataType2 = {
  name: string,
  age: number,
  data: unknown 
}

type DataType3 = {
  name: string,
  age: number,
  data: unknown 
}


// === 定义数据转换类

type DataTransformer<TInput, TOutput> = (input: TInput) => TOutput;


type DataTransformerMap = {
  'DataType1ToDataType2': DataTransformer<DataType1, DataType2>;
  'DataType2ToDataType3': DataTransformer<DataType2, DataType3>;
  // 后续添加更多转换关系时,相应添加类型定义
};

const dataTransformers: DataTransformerMap = {
  'DataType1ToDataType2': (d1: DataType1): DataType2 => {
      const d2: DataType2 = {
         ...d1,
          // 根据实际情况补充或修改属性
      };
      return d2;
  },
  'DataType2ToDataType3': (d2: DataType2): DataType3 => {
      const d3: DataType3 = {
         ...d2,
          // 相应的转换逻辑
      };
      return d3;
  },
  // 继续添加更多类型转换函数
};

class DataConverter {
  transformData<T extends keyof typeof dataTransformers>(
      input: Parameters<typeof dataTransformers[T]>[0]
  ): ReturnType<typeof dataTransformers[T]> {
      return dataTransformers[T](input);
  }
}

// === 实际使用

const converter = new DataConverter();
const d1: DataType1 = {
  name: "",
  age: 0
};
const d2 = converter.transformData<"DataType1ToDataType2">(d1);
console.log(d2)

但是我觉得还有一点想要进行优化就是每次转换数据的时候,我需要输入转换的类型(<"DataType1ToDataType2">):

const d2 = converter.transformData<"DataType1ToDataType2">(d1);

请问是否还有方式可以进行优化呢,比如直接点就提示填入?

阅读 97
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏