Typescript 重复T extend X的打字脚本可能会很麻烦,是吗';你有更好的方法吗?

Typescript 重复T extend X的打字脚本可能会很麻烦,是吗';你有更好的方法吗?,typescript,boilerplate,Typescript,Boilerplate,在TypeScript中,它们是一种避免重复T事物的方法。如果我有这样的接口: interface ISomething<T> { avalue: T // ... } 接口{ 阿瓦鲁:T // ... } 每当我想确保函数的参数为该类型时,我必须编写: const afunction = <T extends ISomething<T>>(aparam: T) => { // do something } constafunction

在TypeScript中,它们是一种避免重复
T事物的方法。如果我有这样的接口:

interface ISomething<T> {
  avalue: T
  // ...
}
接口{
阿瓦鲁:T
// ...
}
每当我想确保函数的参数为该类型时,我必须编写:

const afunction = <T extends ISomething<T>>(aparam: T) => {
  // do something
}
constafunction=(aparam:T)=>{
//做点什么
}
如果我有另一个函数使用的参数必须是相同类型的,我必须重复语法

const bfunction = <T extends ISomething<T>>(aparam: T) => {
  // do something
}
constbFunction=(aparam:T)=>{
//做点什么
}
当在一个文件或一组文件中时,我确实有很多函数(我不喜欢类jéjéj^^^^),它们确实需要相同的类型,这会产生很多样板文件

我要找的是某种速记,能够写出类似的东西

// type TI<T> = T extends ISomething<T>
//类型TI=T
结束后,您将能够:

const cfunction = <TI<T>>(aparam: T) => {
  // do something
}
constcfunction=(aparam:T)=>{
//做点什么
}
甚至更好

const cfunction = <TI>(aparam: TI) => {
  // do something
}
constcfunction=(aparam:TI)=>{
//做点什么
}
它们是存在的类型定义吗?

我在文档中查找了很多,没有发现任何内容:/

它提供了尽可能多的关于所用类型的信息,并且编写的代码也少得多,尤其是当函数数量开始增加时


提前感谢您的阅读,不,这是语法,不是更短的形式。您可以直接为类型定义类型别名。当您向函数引入一个新的泛型类型参数时,您需要使用
extends
keyoword,后跟一个类型,这很遗憾:/Why不允许使用别名呢?它将使代码更加简洁,同时提供尽可能多的有关打字的信息。这是一个原因吗?我喜欢很多打字脚本,但当打字开始变得凌乱时,它会占用大量空间,使代码变得安静而难以阅读。关于参数的声明很好,因为您可以每行编写一个参数,但是围绕函数的声明(泛型和返回类型)可能会变得非常难看,并且很难阅读。如果它可以在执行之前进行计算,并且有助于使代码更干净,那么为什么不将它放在适当的位置呢?这没有多大意义,您必须编写扩展。您可能希望删除始终扩展的类型中的类型参数。Hello;),对于这一点,您是否可以提供更多的解释:“您可能希望删除您一直扩展的类型中的类型参数”?我不确定我是否明白。另外,这个想法的意义不是像类型中的含义那样添加含义,而是通过减少重复的打字来增加代码的清晰度。通过查看别名仍然可以获得信息-我们在生成更干净的代码时不丢失任何打字信息