Typescript 可以使用泛型而不通过参数声明类型吗?

Typescript 可以使用泛型而不通过参数声明类型吗?,typescript,generics,Typescript,Generics,我正在构建一个包装器方法,我想声明它的(单个)参数和返回值是相同的: trackLoading = <T>(observable: Observable<T>): Observable<T> => defer(() => { console.log('started loading') return observable.pipe( finalize(() => console.log('finished lo

我正在构建一个包装器方法,我想声明它的(单个)参数和返回值是相同的:

trackLoading = <T>(observable: Observable<T>): Observable<T> =>
  defer(() => {
    console.log('started loading')
    return observable.pipe(
      finalize(() => console.log('finished loading')))
  })
trackload=(可观察:可观察):可观察=>
延迟(()=>{
console.log('已开始加载')
可观测返回管(
完成(()=>console.log('finished load'))
})
我很想知道我是否可以做到这一点,而不必在开始时传递泛型的确切值,即

//              ⬇️ this feels unnecessary
trackLoading = <T>(observable: Observable<T>): Observable<T> =>
//⬇️ 这感觉没有必要
跟踪加载=(可观察:可观察):可观察=>
但是,如果我删除泛型参数,那么linter会抱怨typescript不正确:


是否有任何方法可以设计泛型,使其不需要将类型作为参数?

否,必须以这种方式定义方法
声明在方法中有一个名为
T
的泛型类型约束。这是语言规范,没有办法绕过它。如果您不关心约束,则将其全部删除,并使用
unknown
或可能的
any