码迷,mamicode.com
首页 > 其他好文 > 详细

类型断言 vs 泛型

时间:2020-12-18 12:29:58      阅读:2      评论:0      收藏:0      [点我收藏+]

标签:通过   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!