泛型推导(从参数反推出 T)

0 阅读1分钟

你不写 <T>,TS 会根据你传入的值“反推”出来:

function wrap<T>(value: T) {
  return { value }
}

const a = wrap(123)    // T 推导成 number
const b = wrap('hi')   // T 推导成 string

再加约束:

function len<T extends { length: number }>(x: T) {
  return x.length
}
len('abc') // OK,string 有 length