设为首页 加入收藏

TOP

TypeScript 2.8引入条件类型
2018-04-13 06:06:23 】 浏览:273
Tags:TypeScript 2.8 引入 条件 类型

最新发布的TypeScript 2.8包含了若干主要特性和一些问题修复,其中最为重要的是新增了条件类型,开发人员可以根据其他类型的特征为变量选择适当的类型。


条件类型最适合与泛型组合在一起使用。如果一个框架总是重复相同的选择性代码,就会变得很繁琐。java script可以在运行时根据具体值做出决策,与之类似,TypeScript的条件类型可以根据其他类型的特征来做出决策。


TypeScript团队给出了一个示例,使用更灵活的接口代替原先繁琐的API:


原先:


替换为:


条件类型提供了infer关键字来推断类型,用于替代手动获取类型。TypeScript为此提供了一个示例,他们创建了一个叫作Flatten的类型,用于将数组转成他们需要的元素类型:


如果使用关键字infer就可以将上面的代码简化成:


条件类型也为联合类型带来了改进,现在可以根据条件类型来分配联合类型。


另外,TypeScript还增加了若干新的类型别名(Exclude、Extract、InstanceType、NonNullable、ReturnType),这些类型别名也是基于条件类型的。TypeScript团队因此可以更高效地直接往语言里添加额外的类型模式。


TypeScript 2.8还增加了一个新的--emitDeclarationOnly标记,用于分离TypeScript定义文件和java script文件,从而改进了使用Babel 7转换TypeScript代码的过程。


该版本还为React和JSX用户带来了一些有关编译注释和JSX模块解析的改进。


现在可以使用-operator或新的Required类型来移除标识符。


其他小改进还包括:用于清理ES模块导入的辅助工具和对未初始化类属性检查的改进。


总体来说,TypeScript 2.8带来了若干改进,大部分都是基于新引入的条件类型,现在可以定义更复杂的类型。


可以通过npm install -g typescript来安装最新的TypeScript 2.8,或者直接从GitHub上下载。TypeScript 2.9正在开发中,预计5月下旬发布。


查看英文原文TypeScript 2.8 Release Includes Conditional Types


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇任务调度并行算法的Java简单实现 下一篇任务调度并行算法的Python简单实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目