博客
关于我
Mobx 结合 TypeScript 实现 setState 类型推导
阅读量:796 次
发布时间:2023-02-09

本文共 474 字,大约阅读时间需要 1 分钟。

使用 TS 遍历指定对象,并形成一个新的类型声明

由于 Mobx Store 本质是一个 object 对象,所以需要声明一个可以遍历某个对象的方法,这里还需要排除 function,我只是需要赋值 mobx 管理的 state 即可,具体代码如下:

type GetStoreState
> = { [Key in keyof T as T[Key] extends Function ? never : Key]: T[Key];};

以上代码分解:

  1. 使用 type 声明一个 TS 工具方法,接收一个泛型 T extends Record<string, any>,并为泛型缩窄类型,指定类型为可 索引类型
  2. [Key in keyof T as T[Key] extends Function ? never : Key] 分两步理解:
    • Key in keyof T 代表 key 属于传入对象的某一个属性;
    • as T[Key] extends Function ? never : Key 代表一个 js 里的三元表

转载地址:http://xfffk.baihongyu.com/

你可能感兴趣的文章
LUOGU P4095 [HEOI2013]Eden 的新背包问题
查看>>
Luogu2973:[USACO10HOL]赶小猪
查看>>
luogu3172 [CQOI2015]选数 莫比乌斯反演+杜教筛
查看>>
lvm基本知识与常用命令
查看>>
lvs+keepalive主从和主主架构
查看>>
LVS-DR工作原理图文详解
查看>>
LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现
查看>>
LVS精益价值管理系统 LVS.Web.ashx SQL注入漏洞复现
查看>>
LVS负载均衡
查看>>
Lync 小技巧-52-Lync 2013-不加域-客户端-2-导入-证书-信任链
查看>>
LZ4 1.10 压缩算法发布!具有多线程功能,压缩速度显著提高达 8 倍
查看>>
lzg_ad:打印机需要的组件支持
查看>>
mabatis 中出现&lt; 以及&gt; 代表什么意思?
查看>>
Mac + Anaconda 上的 Qt 设计器应用程序在哪里?
查看>>
Mac book air 重新安装系统验证显示 untrusted_cert_title
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
mac elasticsearch brew安装填坑
查看>>
mac M1 下安装docker 及相关镜像
查看>>
Mac M1 安装 TensorFlow 使用Python3.8
查看>>
Mac M1 芯片不兼容node-sass
查看>>