typescript 自动推断界面中的类型

rqqzpn5f  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(130)

我有一个这样的代码

interface Model<T extends Type> {
  type: T
  get?: (value: ToNodeType<T>) => any
}

我希望它能自动从'type'属性推断'get'的参数类型

const model: Model = {
  type: 'int',
  get: (v) => 0
}

但它实际上抛出了错误Generic type 'Model ' requires 1 type argument(s).

xxe27gdn

xxe27gdn1#

interface Model<T extends Type> {
  type: T
  get?: (value: ToNodeType<T>) => any
}

function defineModel<T extends Type>(model: Model<T>): Model<T> {
  return model;
}

const model = defineModel({
  type: 'int',
  get: (v) => 0
})

model;
// ^? const model: Model<'int'>

相关问题