TypeScript 2.7 版本发布

TypeScript 2.7版本已经发布了,新增了几个主要功能特性并进行了一些bug的修正。其中一些亮点包括对类属性的赋值检查、固定长度的元组和改进对象文字的类型推断。总的来说,这个版本对类型系统、ES2015+特性和总体的TypeScript开发者体验都进行了改进优化。

TypeScript 2.7版本引入了一些突破性的改变,开发人员在升级代码库以使用TypeScript 2.7时,应该知晓这些变化。

当被问及TypeScript目前的版本规划时,项目经理Daniel Rosenwasser说:

我认为,从最广泛的意义上来说,我们关注的是易用性,并确保我们现有的用户继续在TypeScript上的投入是有价值的。前者通常是减少在起步时的学习成本,后者通常关注的是表现性及安全性。

例如,现有的TypeScript用户要求对类初始化进行更严格的检查。继TypeScript 2.6版添加了严格的函数类型检查之后,2.7版本又添加了在类中使用strictPropertyInitialization标志的严格属性初始化检查。这个标志会检查类的每个实例的属性,确定它是在类的构造方法里被初始化的,还是通过属性初始化程序初始化的。当升级到2.7后,使用严格标记的开发人员将会自动地在他们的源代码中获得这个额外的检查。建议在TypeScript中使用这一严格的标记,因为它可以帮助开发人员找到并消除其他类型的错误或异常行为。

明确的赋值断言功能也已经可用了,即使在TypeScript分析器不能确认赋值时,也可以指示TypeScript的控制流分析器始终认定一个明确已赋值的。

TypeScript的设计师之一Anders Hejlsberg表示,版本还改进了对对象字面量的类型推断:

改进在相同上下文中出现的多个对象字面量的类型推断。当多个对象字面量类型组成一个union类型时,我们将对象字面量类型规范化,这样所有的属性就会出现在union类型的每个组成部分中。

const obj = test ? { text: "hello" } : {}; 
// { text: string } | { text?: undefined } const s = obj.text; // string | undefined

第一行我们推断出obj的类型{},第二行随后导致了错误,因为obj似乎没有属性。这显然并不是理想的效果。

其他语言级别的改进包括改进union类型和instanceof表达式中结构相同类的处理方法,以及从操作符中推断出更好的类型保护。

TypeScript 2.7也对ES2015+符号进行了改善支持。属性可以使用const声明的符号来命名,可以在接口、类或类型文字中将Identifier或PropertyAccessExpression用作计算属性名称的一部分。

改进了与CommonJS模块的互操作性,支持 import d from “cjs”,并使用了esModuleInterop标志。在内部,TypeScript利用了CJS模块的ES模块。Rosenwasser向InfoQ解释了这项功能背后的动机:

我们知道在模块互操作性策略中存在一些不友好性,这使得一些用户更难以掌握TypeScript。对于新TypeScript用户来说,这是一个障碍,这也是为什么我们要在这个版本中提高esModuleInterop标记优先级的原因。当然,我们也有参与对ECMAScript标准的更新,并且在发展我们语言时也非常注意吸收这些标准。

第三阶段的数字分隔符提议,预计将作为ES2018的一部分,现在已经包含在TypeScript中,帮助TypeScript保持当前对JavaScript语言的年度更新。

在TypeScript 2.7中,有一些改进是针对开发人员使用体验的。像webpack和Gulp这样的开发工具将从新的增量构建编译器API中受益。这一变化将使工具更容易地进行因更新代码带来的资源更新,而不是需要在每次增量更新中重新构建整个项目。此外,ide还提供了一个更新的TypeScript语言服务API,允许开发人员自动修复文件中所有已明确的问题。

TypeScript 2.7可以通过npm的npm install -g typescript命令进行安装,或通过GitHub获得。TypeScript 2.8开发工作已经在进行中,预计将于3月下旬发布。

原文地址:http://www.infoq.com/cn/news/2018/02/typescript-2-7-released


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo(八)之API 配置

转载自 DubboAPI 配置 以API 配置的方式来配置你的 Dubbo 应用 API 属性与配置项一对一&#xff0c;各属性含义&#xff0c;请参见&#xff1a;配置参考手册&#xff0c;比如&#xff1a;ApplicationConfig.setName("xxx") 对应 <dubbo:application name"…

nssl1338-逃亡路径【最短路计数,bfs】

正题 题目大意 n∗mn*mn∗m的格子&#xff0c;一个走"日"字形的马&#xff0c;从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)的最短路条数。 解题思路 模板最短路计数改一下即可 当然因为边权都为1所以这里改成了bfsbfsbfs codecodecode #include<cstdio> #include&…

Azure Functions + Azure Batch实现MP3音频转码方案

客户需求客户的环境是一个网络音乐播放系统&#xff0c;根据网络情况提供给手机用户收听各种码率的MP3歌曲&#xff0c;在客户没购买歌曲的情况下提供一个三十秒内的试听版本。这样一个系统非常明确地一个需求就是会定期需要将一批从音乐版商手中获取到的高比特率音乐文件转换成…

Springboot Mybatis多数据源配置MybatisProperties坑

一、场景复现 配置了两个数据源&#xff0c;查询Dao却报错表不存在。 &#xff08;1&#xff09;maven <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId> </dependency> …

nssl1351-矩形反色【离散,差分】

正题 题目大意 对一个全白矩阵每次选择一个矩阵颜色取反。 然后求最后所有黑色联通块的周长之和。 解题思路 因为是算周长&#xff0c;所以我们将一个矩阵拆分成4条边&#xff0c;然后将横竖分开处理。 若处理横的边&#xff0c;我们按照xxx为关键字排序。 然后对于xxx不同…

dotnet core webapi +vue 搭建前后端完全分离web架构(一)

架构服务端采用 dotnet core webapi前端采用: Vue router elementUIaxios问题使用前后端完全分离的架构&#xff0c;首先遇到的问题肯定是跨域访问。前后端可能不在同个server上&#xff0c;即使前后端处在同个server上&#xff0c;由于前后端完全分离&#xff0c;前后端使用…

SpringBoot使用日志

转载自 SpringBoot使用日志 1、选什么日志框架 首先列举一下日志门面和实现SpringBoot默认选用SLF4J和Logback日志级别&#xff1a;springboot默认已经帮我们配置好了日志&#xff0c;日志级别为trace<debug<info<warn<error默认的日志级别为inifo&#xff0c;日…

Dotnet Core Windows Service

在dotnet 中有topshelf 可以很方便的写windows 服务并且安装也是很方便的&#xff0c;命令行 运行.exe install 就直接把exe 程序安装成windows 服务。当然代码也要做相应的修改&#xff0c;具体的可以参照例子。在dotnet core 2.0 中 我们也有一个很方便的dll 来使用 https://…

P4549-[模板]裴蜀定理

正题 题目链接:https://www.luogu.org/problem/P4549 题目大意 一个整数序列AAA&#xff0c;一个整数序列XXX使得 ∑i1nAiXiS\sum_{i1}^n A_iX_iSi1∑n​Ai​Xi​S 求SSS可能的最小正整数值。 裴蜀定理 对于方程axbyS(x,y∈N)axbyS(x,y\in \mathbb{N}^)axbyS(x,y∈N) 的充要…

Dubbo(十)之配置加载流程

转载自 Dubbo配置加载流程 Dubbo 中的配置加载流程介绍 此篇文档主要讲在应用启动阶段&#xff0c;Dubbo框架如何将所需要的配置采集起来&#xff08;包括应用配置、注册中心配置、服务配置等&#xff09;&#xff0c;以完成服务的暴露和引用流程。 根据驱动方式的不同&…

.NET 文档数据库 RavenDB 4.0 发布

RavenDB 还有一个新的版本&#xff0c;RavenDB 4.0.0&#xff0c;一个ACID文档数据库&#xff0c;为数据操作中的高性能业务提供完全事务性的开源NoSQL解决方案。新版本更新了许多关键功能。平台Windows x64Windows x86Ubuntu 16.04 x64树莓派Docker&#xff08;Ubuntu 16.04和…

P5091-[模板]欧拉定理

正题 题目链接:https://www.luogu.org/problem/P5091 题目大意 求abmod&ThinSpace;&ThinSpace;ma^b\mod mabmodm 欧拉定理及扩展 欧拉定理: 对于(a,m)1(a,m)1(a,m)1那么有aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1(mod\ m)aφ(m)≡1(mod m) 扩展欧拉定理 ab≡{ab%φ…

Dubbo(九)之注解配置

转载自 Dubbo注解配置 以注解配置的方式来配置你的 Dubbo 应用 提示 需要 2.6.3 及以上版本支持。 点此查看 完整示例 服务提供方 Service注解暴露服务 Service public class AnnotationServiceImpl implements AnnotationService {Overridepublic String sayHello(Stri…

P5431-[模板]乘法逆元2【递推】

正题 题目链接:https://www.luogu.org/problem/P5431 题目大意 一个长度为nnn的序列aaa。 求(∑i1nkiai)%p(\sum_{i1}^n \frac{k^i}{a_i})\% p(i1∑n​ai​ki​)%p 解题思路 定义si∏i1iais_i\prod_{i1}^ia_isi​i1∏i​ai​ 1si−11si∗ai\frac{1}{s_{i-1}}\frac{1}{s_{i}…

dotnetcore+vue+elementUI 前后端分离架 二(后端篇)

前言最近几年前后端分离架构大行其道&#xff0c;而且各种框架也是层出不穷。本文通过dotnetcore vue 来介绍 前后端分离架构实战。涉及的技术栈服务端技术mysql本项目使用mysql 作为持久化层本项目采用了 mysql 的示例 employees 数据库, 需要的朋友可以自行下载 。http://www…

SpringCloud Gateway配置自定义路由404坑

一、场景复现 微服务自定义路由&#xff0c;返回404页面。 ①如图&#xff1a; &#xff08;1&#xff09;springcloud-gateway的路由设置 Configuration public class RouteConfig {Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder builder) {return buil…

Actor-ES框架:Ray-Handler之ToReadHandler编写

如图右上角所示&#xff0c;Ray中有两类Handler&#xff08;SubHandler和PartSubHandler&#xff09;,在使用中&#xff0c;SubHandler派生Actor的CoreHandler&#xff0c;PartSubHandler派生SQLToReadHandler&#xff0c;SQLToReadHandler派生Actor的ToReadHandler&#xff0c…

POJ1006-Biorhythms【中国剩余定理】

正题 题目链接:http://poj.org/problem?id1006 题目大意 若干个p,e,i,dp,e,i,dp,e,i,d。已经知道 {(dx)≡p(mod23)(dx)≡e(mod28)(dx)≡i(mod33)\left\{\begin{matrix} (dx)\equiv p(mod\ 23) \\ (dx)\equiv e(mod\ 28) \\ (dx)\equiv i(mod\ 33) \end{matrix}\right.⎩⎨⎧…

SpringCloud Zuul(十)之配置路由prefix坑

一、场景复现 配置prefixapi访问/api/micro-service/test接口404 &#xff08;1&#xff09;zuul配置 zuul:strip-prefix: true #转发路径截断匹配前缀prefix: "api"add-proxy-headers: falseset-content-length: truesemaphore:max-semaphores: 600 &#xff08;…

在Firefox 58中,WebAssembly组件性能提升了10倍

Mozilla在Firefox 58中为WebAssembly&#xff08;WASM&#xff09;组件推出了一套双层编译系统&#xff0c;号称解析和编译WASM代码的速度达到30-60MB/s&#xff0c;足够在有线网络中实现实时编译。基准测试表明&#xff0c;新版的性能比旧版提高了10倍&#xff0c;比Chrome快1…