TypeScript(ts)泛型说明及基本使用
// 定义一个泛型函数,用于创建一个值的可观察对象
function observable<T>(initialValue: T): Observable<T> {
// 实现细节
return {
value: initialValue,
subscribe: (observer: Observer<T>) => {
// 当值改变时通知观察者
observer.next(this.value);
}
};
}
// 定义观察者接口
interface Observer<T> {
next: (value: T) => void;
error?: (error: any) => void;
complete?: () => void;
}
// 定义可观察对象接口
interface Observable<T> {
value: T;
subscribe: (observer: Observer<T>) => Unsubscribe;
}
// 定义取消订阅的函数类型
type Unsubscribe = () => void;
// 使用泛型函数创建一个string类型的可观察对象
const stringObservable = observable<string>("Hello, World!");
// 创建观察者
const stringObserver = {
next: (value: string) => console.log(value), // 当值改变时打印出来
error: (error: any) => console.error(error), // 当出现错误时打印错误信息
complete: () => console.log("Completed") // 当观察完成时打印完成信息
};
// 订阅可观察对象
const unsubscribe = stringObservable.subscribe(stringObserver);
// 取消订阅
unsubscribe();
这段代码定义了一个泛型函数observable
,它接受一个初始值并返回一个可观察对象。同时定义了Observer
和Observable
接口,以及一个Unsubscribe
类型,用于取消订阅操作。最后,我们创建了一个string类型的可观察对象,并定义了一个观察者来处理值的变化、错误和完成情况。
评论已关闭