Typescript推断类型而不使用显式类型变量进行回调
我想用我的函数包装rxjs subscribe的Typescript推断类型而不使用显式类型变量进行回调,typescript,types,Typescript,Types,我想用我的函数包装rxjs subscribe的next回调: type Handler<T> = (value: T) => void; export function withTryCatch<T>(callback?: Handler<T>): Handler<T> { return (value: T) => { try { callback?.(value); } catch(err) {
next
回调:
type Handler<T> = (value: T) => void;
export function withTryCatch<T>(callback?: Handler<T>): Handler<T> {
return (value: T) => {
try {
callback?.(value);
} catch(err) {
// error handling
}
};
}
有没有办法避免使用
with trycatch
?这个问题与您使用with trycatch函数的地方分开,在这种情况下,它是rxjssubscribe方法。当您仅调用它时,genericTtype参数是未知的。当您使用某种类型参数调用它时,T当然是已知的。您可以通过键入user参数来使用Typescript推断,如下所示:
withTryCatch((用户:UserModel)=>{
});
您需要将回调直接传递给subscribe以使用Typescript推断。不幸的是,使用这种包装函数是不可能的,这个问题与使用trycatch函数的地方是分开的,在这种情况下,它是rxjssubscribe方法。当您仅调用它时,genericTtype参数是未知的。当您使用某种类型参数调用它时,T当然是已知的。您可以通过键入user参数来使用Typescript推断,如下所示:
withTryCatch((用户:UserModel)=>{
});
您需要将回调直接传递给subscribe以使用Typescript推断。不幸的是,使用这种包装函数是不可能的
store$
.pipe(
map(userSelector)
)
// .subscribe(withTryCatch<UserModel>((user) => {
.subscribe(withTryCatch((user) => {
// possible error code
}));