Ngrx Store实现源代码的MemoizedSelector学习笔记
定义一个类型AnyFn,代表任意的函数:
export type AnyFn = (...args: any[]) => any; let a: AnyFn;a = (data) => console.log(data);a('Jerry');a = 1; // 语法错误
上面代码将1赋给a,会引起编译错误,因为1的类型是number.
定义一个MemoizedProjection类型:
export type MemoizedProjection = {memoized: AnyFn;reset: () => void;setResult: (result?: any) => void;clearResult: () => void;
};
定义一个变量,类型为MemoizedProjection:
let a: MemoizedProjection;let b = (data) => console.log(data);a.memoized = b;
a.reset = () => console.log('reset');
a.setResult = (result) => console.log(result);
a.clearResult = () => console.log('clear');
上述代码执行会报错误:
Uncaught TypeError: Cannot set property ‘memoized’ of undefined:
下图29行,尖括号里的T不能换成any. any不能出现在类型参数的位置里。如果表示任意类型,不出现在类型参数的位置,可以用any.
Generic type ‘MemoizedSelector<State, Result, ProjectorFn>’ requires between 2 and 3 type arguments.
interface里添加method:
看个Spartacus的例子:一个函数除了本身的实现之外,还多了4个属性,分别指向4个另外的函数:
memoizedProjector构造完毕:
通过下面这个方法构造的:
Object.assign. 该方法会把输入参数的各个对象的属性做一个合并:
更多Jerry的原创文章,尽在:“汪子熙”:
Ngrx Store实现源代码的MemoizedSelector学习笔记相关推荐
- 从源代码开始 Detectron2学习笔记
`从零开始 Detectron2学习笔记(一) 框架简介 1.Detection2的安装 2. 用预训练模型进行检测 2.1官方demo示例 2. 2源代码解读 2.2.1 模型的配置和构建 2.2. ...
- 树莓派学习笔记—— 源代码方式安装opencv
0.前言 本文介绍如何在树莓派中通过编译源代码的方式安装opencv,并通过一个简单的例子说明如何使用opencv. 更多内容请参考--[树莓派学习笔记--索引博文] 1.下载若干依赖项 在开始安装之 ...
- java存入光盘_java 这是 学习笔记(jdk7)书中的光盘里的源码,不知大家需要不,里面都是新手 的好 Develop 238万源代码下载- www.pudn.com...
文件名称: java下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 1272 KB 上传时间: 2013-04-01 下载次数: 18 提 供 者: 孙鹏启 详细 ...
- eos 源代码学习笔记一
文章目录 eos 源代码学习笔记 1.eos 中的常见合约类型 2.语言环境局部( locale )变量的使用简介(目的是通过 gettext 软件包 来实现软件的全球化) 3.eos 源代码的一些优 ...
- 【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码
本汇编代码是以下两篇文章讲解的内容的内核代码; [OS学习笔记]二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念 [OS学习笔记]二十四 保护模式七:调用门与依从的代码段----特权级保护 ...
- CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码
CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...
- PCA(主成分分析-principal components analysis)学习笔记以及源代码实战讲解
PCA(主成分分析-principal components analysis)学习笔记以及源代码实战讲解 文章目录 PCA(主成分分析-principal components analysis)学 ...
- 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...
韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...
- Buffalo 学习笔记- buffalo.js 源代码注释(一)
Buffalo 学习笔记- buffalo.js 源代码注释(一) 注: 如果转载 请注明 原文地址: http://blog.csdn.net/jianglike18/archive/2009/04 ...
最新文章
- wfs.js 多路视频 串屏 闪烁
- 好记心不如烂笔头之jQuery学习,第一章
- ZooKeeper編程01--RMI服務的多服務器管理
- zookeeper完全分布搭建-安装-配置
- 中央音乐学院计算机研究生,2020北京中央音乐学院硕士研究生招生复试电子音乐作曲、电子音乐技术理论等考生须知...
- (39)System Verilog程序Program设计实例
- Android: android 如何预置APK
- ZOJ 3502	 Contest 状态压缩 概率 DP
- win10自带抓包工具_win10应用商店抓包-Win10商店抓包工具下载 v1.1免费版--pc6下载站...
- php ora01017,建立DBLINK报ORA-01017,ORA-02063
- Disunity_V0.5.0 提取Unity生成的Apk的资源
- 谈谈ILDasm的功能限制与解除
- 【软件工程】结构图(SC)——期末复习用
- Sql server2005 char/varchar/text和nchar/nvarchar/ntest的区别
- 开发一个app需要多少钱?
- 计算机网络安全中的审计,什么是网络安全审计
- 盘点市场营销工作中的5个办公神器
- Greenplum在HTAP场景下的优化和应用
- 痛心:三天痛别八位院士!中科院院士、著名药学家蒋华良英年早逝,终年57岁...
- golang ODBC 访问access数据库