类型断言 vs 泛型

标签:通过   win   cat   泛型   实现   添加   ace   class   style   

function getCacheData(key: string): any {
    return (window as any).cache[key];
}

interface Cat {
    name: string;
    run(): void;
}

const tom = getCacheData(‘tom‘) as Cat;
tom.run();

上面代码是类型断言,window断言成any

function getCacheData<T>(key: string): T {
    return (window as any).cache[key];
}

interface Cat {
    name: string;
    run(): void;
}

const tom = getCacheData<Cat>(‘tom‘);
tom.run();

通过给 getCacheData 函数添加了一个泛型 <T>,我们可以更加规范的实现对 getCacheData 返回值的约束,这也同时去除掉了代码中的 any,是最优的一个解决方案。

 

类型断言 vs 泛型

标签:通过   win   cat   泛型   实现   添加   ace   class   style   

原文地址:https://www.cnblogs.com/xiaoxiangmomo/p/14128123.html

版权声明:完美者 发表于 2020-12-18 12:29:58。
转载请注明:类型断言 vs 泛型 | 完美导航

暂无评论

暂无评论...