TypeScript里的工具类型Partial的理解用法

  • Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional):
    • 其实Partial源码很简单

Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional):

interface People {age: number;name: string;
}const Jerry:People = {age: 10,name: 'Jerry'
};const Tom: People = {name: 'Tom'
}

上述代码会发生编译时错误:

1.ts:11:7 - error TS2741: Property ‘age’ is missing in type ‘{ name: string; }’ but required in type ‘People’.

解决方法:

interface People {age: number;name: string;
}const Jerry:People = {age: 10,name: 'Jerry'
};
// 相当于: type AnonymousPeople= {  age?: number; name?: string; }
type AnonymousPeople = Partial<People>;const tom:AnonymousPeople = {name: 'Tom'
};

编译之后:

var Jerry = {age: 10,name: 'Jerry'
};
var tom = {name: 'Tom'
};

其实Partial源码很简单

利用keyof 产生枚举类型,,in 使用枚举类型遍历

type Partial<T> = { [P in keyof T]?: T[P] };

说白了Partial可以让接口定义的类型变成包含可选的

TypeScript里的工具类型Partial的理解用法相关推荐

  1. TypeScript里的工具类型Partial的用法

    在SAP Spartacus的源代码里我们可以观察到很多Partial的使用场景: Partial 可以快速把某个接口类型中定义的属性变成可选的(Optional): interface People ...

  2. TypeScript 工具类型 Partial

    目录 现象: Partial 作用: Partial 实现原理: 现象: Partial 在ts项目中很常见 使用频率也相对较高 如: Partial<T> 作用: 把接口类型中定义的属性 ...

  3. TypeScript 里的枚举类型 enum

    官网地址 枚举是 TypeScript 为数不多的不是 JavaScript 类型级扩展的特性之一. 枚举允许开发人员定义一组命名常量. 使用枚举可以更轻松地记录意图,或创建一组不同的案例. Type ...

  4. TypeScript里的中括号类型定义法

    下图定义了一个类型Data,可以包含一个字段,指向任意数据: https://stackoverflow.com/questions/58090665/typescript-what-is-the-t ...

  5. TypeScript里的自定义类型用法

    新建一个index.ts: type NumGenerator = (input: number) => number;function myFunc(numGenerator: NumGene ...

  6. TypeScript里的混合类型

    TypeScript的对象可以同时做为函数和对象使用,并带有额外的属性. interface Counter {(start: number): string;interval: number;res ...

  7. TypeScript里的空值合并运算符(双问号)用法

    当左侧操作数为 null 或 undefined 时,其返回右侧的操作数,否则返回左侧的操作数. 例子: const foo = null ?? 'default string'; 编译后的JavaS ...

  8. 【TS】1368- 秒懂 TypeScript 泛型工具类型!

    阿宝哥精心准备的<轻松学 TypeScript> 视频教程已经更新到第十九期了,合集播放量已达 14W+.通过形象生动的动画,让你轻松搞懂 TypeScript 的难点和核心知识点! 如果 ...

  9. TypeScript 实用工具类型之 Partial 类型

    TypeScript 实用工具类型之 Partial 类型 TypeScript 实用工具类型之 Partial 类型 1. 场景概述 2. Partial<Type> 3. 使用 Int ...

最新文章

  1. python之路之面向对象3
  2. 【转】C# 开发Chrome内核浏览器(WebKit.net)
  3. 手把手教你学51单片机-c语言版期末考试,手把手从零教你学51单片机
  4. C++——auto_ptr类
  5. Django从理论到实战(part29)--Field的常用参数
  6. 40%美国人付不起400美元意外开销,大家怎么看?
  7. canvas入门实战--邀请卡生成与下载
  8. 算法组合 优化算法_算法交易简化了风险价值和投资组合优化
  9. 编译JDK源代码【转】
  10. [转载] python关键字和保留字_Python关键字
  11. 类和对象之Scala程序
  12. 工作说明书SOW(Statement Of Work)
  13. 虚拟机ping通主机步骤_6在购买虚拟主机服务之前,请按照操作步骤进行操作
  14. Codeforces 235C Cyclical Quest
  15. 做个很小众的应用就可以月入数万,为什么多数程序员都不做个人开发?
  16. JPA中could not insert: 的解决办法
  17. 服务器不能读取无线网卡,无线网卡无法获得IP地址的解决方案
  18. 人人都是产品经理总结 第五章
  19. 应用进程占内存大问题分析方法
  20. Unity3D音频的制作

热门文章

  1. CWS(美国国土安全部下属的软件保证项目)与SANS(权威安全培训组织)联合编制的最危险的25个编程错误
  2. 穷人 与 富人 思维 比较
  3. 学习《华为基本法》(13):市场营销
  4. Elasticsearch是一把梭,用起来再说?!
  5. OpenGL Ant Tweak Bar的用户界面库
  6. Python Web框架 Django项目搭建与测试详解
  7. NetBackup 8.2 LinuxR Oracle脚本备份
  8. 用python给说说点赞的人群发新年祝福邮件
  9. idea风格ui java_IDEA界面太丑??尝试一下这几个风格
  10. linux shell ifs,【shell】IFS和$*变量