代码之家  ›  专栏  ›  技术社区  ›  zedryas

typescript重复T extend X可能会很麻烦,这是更好的方法吗?

  •  2
  • zedryas  · 技术社区  · 8 年前

    它们是TypeScript中避免重复的一种方式 T extends ISomething<T> 到处都是如果我有这样一个界面:

    interface ISomething<T> {
      avalue: T
      // ...
    }
    

    每当我想确保一个函数的参数是这种类型时,我必须写:

    const afunction = <T extends ISomething<T>>(aparam: T) => {
      // do something
    }
    

    如果我有另一个函数使用的参数必须是同一类型的,我必须重复语法

    const bfunction = <T extends ISomething<T>>(aparam: T) => {
      // do something
    }
    

    当在一个文件或一组文件中时,我确实有很多函数(我不喜欢类jjj^^^),它们确实需要相同的类型,这会产生很多样板文件。

    我要找的是某种速记,能写出这样的东西

    // type TI<T> = T extends ISomething<T>
    

    结束,然后能够:

    const cfunction = <TI<T>>(aparam: T) => {
      // do something
    }
    

    甚至更好

    const cfunction = <TI>(aparam: TI) => {
      // do something
    }
    

    它们是这样一种存在的类型定义吗?

    我查阅了很多文档,没有发现任何东西:/

    它提供了尽可能多的关于所用打字和制作的信息 更少的代码 写,尤其是当函数数开始累加时。

    提前感谢你的阅读,希望他们是一个更好的方式^^

    塞布

    0 回复  |  直到 8 年前
    推荐文章