请教一个 TS 问题,不知能否实现

查看 19|回复 1
作者:jeremye   
目前使用以下代码可以正常进行的类型推导,但每定义一个 item 都需要调用一次 defineItem,想要实现一个 defineConfig 方法,省略掉 defineItem,同时保留原先的类型推导。
interface Options {
  a: () => T;
  b: (p: T) => void;
}
function defineItem(options: Options) {
  return options;
}
const config = {
  item1: defineItem({
    a: () => ({ id: 1 }),
    b: (params) => {}, // params 类型是 { id: number }
  }),
  item2: defineItem({
    a: () => ({ name: '1' }),
    b: (params) => {}, // params 类型是 { name: string }
  }),
};
预期的效果
const config = defineConfig({
  item1: {
    a: () => ({ id: 1 }),
    b: (params) => {}, // params 类型是 { id: number }
  },
  item2: {
    a: () => ({ name: '1' }),
    b: (params) => {}, // params 类型是 { name: string }
  },
});
bagel   
Partial?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部