【发布时间】:2020-03-31 03:14:28
【问题描述】:
我想用我的函数包装 rxjs 订阅的 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
}
};
}
下面这个例子的问题是,它不会自动从订阅的next 函数推断类型。在此示例中,user 类型表示为 unknown。如何使用户想要的类型的唯一方法是显式设置 withTryCatch 类型变量 T(请参阅下面的注释代码 - withTryCatch<UserModel>)。
store$
.pipe(
map(userSelector)
)
// .subscribe(withTryCatch<UserModel>((user) => {
.subscribe(withTryCatch((user) => {
// possible error code
}));
有什么办法可以避免使用withTryCatch<UserModel>?
【问题讨论】:
标签: typescript types