TypeScript(ts)泛型说明及基本使用
    		       		warning:
    		            这篇文章距离上次修改已过440天,其中的内容可能已经有所变动。
    		        
        		                
                
// 定义一个泛型函数,用于创建一个值的可观察对象
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类型的可观察对象,并定义了一个观察者来处理值的变化、错误和完成情况。
评论已关闭