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
。