快捷搜索:

您的位置:澳门新葡4473网站 > 项目 > TypeScript 3.6 发布,微软脚本编程语言

TypeScript 3.6 发布,微软脚本编程语言

发布时间:2020-03-12 15:59编辑:项目浏览(80)

    Haxe 4.0 已经宣布了,Haxe 澳门新葡4473网站,是一门新兴的开源编制程序语言,是一种开源的编程语言。内容如下:

    TypeScript 3.6 已经宣布了,更新内容如下:

    新的函数类型语法

    使用更严谨的生成器(Stricter Generators)

    TypeScript 3.6 引进了对迭代器和生成器函数(generator functions)的更严俊检查。在早先时代版本中,生成器的使用者不能够区分三个值是来源于 yield 操作恐怕从生成器再次来到。

    澳门新葡4473网站 1

    其余,生成器仅仅固然 yield 类型是私自的:

    澳门新葡4473网站 2

    以第一段代码为例,在 TypeScript 3.6 中,检查器会知道 curr.value 的不易类型应该为 string,并在最后二个演示中改善对 next(State of Qatar的错误调用。那要归功于因在IteratorIteratorResult项目注明中开展的片段变动而引进部分新的种类参数,以至 TypeScript 用于代表称为Generator花色的生成器。

    该版本中 Iterator 类型允许客户表达 yield 类型、重临的品类和 next 能够接收的类型。

    澳门新葡4473网站 3

    在这里幼功上,新品类 Generator 是叁个 Iterator,它同有时候设有 return 和 throw 方法,並且是可迭代的。

    澳门新葡4473网站 4

    为了分歧重回的值和扭转的值,TypeScript 3.6 将 IteratorResult 类型转变为同步项目:

    type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
    
    interface IteratorYieldResult<TYield> {
        done?: false;
        value: TYield;
    }
    
    interface IteratorReturnResult<TReturn> {
        done: true;
        value: TReturn;
    }
    

    轻便,那表示在一贯处理迭代器时,将能够符合地压缩迭代器的值。

    为了科学表示能够从调用 next( 卡塔尔(قطر‎ 传入生成器的种类,TypeScript 3.6 还是能推论生成器函数主体内的一些 yield 用场。

    澳门新葡4473网站 5

    一经你指望显式,还足以接收显式再次回到类型从 yield 表明式强制实施重回、yield 和计量的值的体系。如下,只可以用布尔值调用 next( State of Qatar,并且决计于 done 的值,value 要么是 string,要么是 number。

    /**
     * - yields numbers
     * - returns strings
     * - can be passed in booleans
     */
    function* counter(): Generator<number, string, boolean> {
        let i = 0;
        while (true) {
            if (yield i++) {
                break;
            }
        }
        return "done!";
    }
    
    var iter = counter();
    var curr = iter.next()
    while (!curr.done) {
        console.log(curr.value);
        curr = iter.next(curr.value === 5)
    }
    console.log(curr.value.toUpperCase());
    
    // prints:
    //
    // 0
    // 1
    // 2
    // 3
    // 4
    // 5
    // DONE!
    

    引进了用于钦命函数类型的新语法,以往早就明朗地将参数类型与重临类型分离,并扶持参数名称。

    更确切的数组扩大

    在默许情形下,TypeScript 使用三个更简短的发射,它只帮忙数组类型,并支持使用 --downlevelIteration 标志在别的体系上开展迭代。在这里标记下,发出的代码更标准,但要大得多。可是,在一些边缘意况下,受帮衬的数组还是存在一些距离,如下:

    [...Array(5)]
    

    等效于以下数组:

    [undefined, undefined, undefined, undefined, undefined]
    

    然而,TypeScript 将原始代码转变为以下代码:

    Array(5).slice();
    

    那是差异的,Array(5卡塔尔 生成长度为 5 的数组,但未有品质:

    澳门新葡4473网站 6

    当 TypeScript 调用 Slice( 卡塔尔时,它还也许会创制一个数组,在这之中储存尚未安装的目录。

    3.6 版本引进了三个新的 __spreadArrays 帮手,用于标准地模拟 ECMAScript 二〇一五 中在 --downlevelIteration 之外中生出的气象。__SpreadArray 也可在 tslib 中使用。

    (name:String, age:Int)->Bool
    

    Improved UX Around Promises

    Promise 是近期管理异步数据的最布满方法之一,不幸的是,使用Promise面向对象的 API 日常会让使用者感觉百思不解。由此针对Promise被错误管理的情况,TypeScript 3.6 引进了有的更进一竿。

    诸如,在将其传递给另多个函数早先,Promise忘记.then()或者await剧情日常是很广泛的。TypeScript 的失实音信今后是专项使用的,并告诉使用者他们或然应该思虑动用await关键字。

    澳门新葡4473网站 7

    其它还提供高速修复:

    澳门新葡4473网站 8

    arrow function syntax

    越来越好的 Unicode 扶植标志符

    当发射到 ES 2014或别的时,3.6 版本包括更好地支撑标记符中的 Unicode 字符:

    澳门新葡4473网站 9

    此版本引进箭头函数语法。

    在 SystemJS 中支持 import.meta

    3.6 版本帮忙在将 module 目标设置为 system 时,将 import.meta 调换为 context.meta。

    澳门新葡4473网站 10

    (a, b) -> a + b
    

    get and set Accessors Are Allowed in Ambient Contexts

    在开始时期版本的 TypeScript 中,并不准在乎况上下文中 set 和 get 访问器,其基本原理是,就写入和读取这么些属性来说,访谈器与质量并从未分别;不过,由于 ECMAScript 的类字段议案或许与存活版本的 TypeScript 中的行为分裂,则须求一种方法来维系这种差别的作为,以便在子类中提供合适的谬误。

    因而 TypeScript 3.6 中,顾客可以在境况上下文中编辑 getter 和 setter。

    澳门新葡4473网站 11

    不再支持自定义属性访问器

    景况类和函数能够统一

    在早先版本中,在任何情状下合并类和函数都以有错的。此版本中,意况类和函数(带有 declare 修饰符的类/函数,或 .d.ts 文件中的类/函数State of Qatar可以统一。如下内容:

    澳门新葡4473网站 12

    而无需使用:

    澳门新葡4473网站 13

    它的四个优点是能够轻巧地宣布可调用的构造函数形式,同有的时候间允许名称空间与那么些申明归拢(因为 var 注解无法与名称空间归并卡塔尔(قطر‎。

    将品质访谈器类型改换为(set,get卡塔尔(قطر‎,并应用由前缀 get_ 或 set_ 后跟属性名称组成的正统 getter/setter 名称:

    APIs to Support --build and --incremental

    TypeScript 3.6 增添了两组用于操作项目援引和增量式程序营造的 API。

    对于 --incremental,顾客能够行使 createIncrementalProgram 和 createIncrementalCompilerHost API。客户还是能选用新的 readBuilderProgram 函数从该 API 生成的 .tsbuildinfo 文件中重新补充旧的次第实例,该函数仅用于创立新程序(即不能改改再次回到的实例,它仅用于别的Create*Program 函数中的oldProgram 参数State of Qatar。

    class Test {
    
      @:isVar var myvar(get, set) : String = "Something";
    
      static function main() {
        trace (new Test().get_myvar());
      }
    
      public function new() {}
    
      public function get_myvar() : String { return myvar; }
      public function set_myvar(s:String) : String { return myvar = s; }
    }
    

    New TypeScript Playground

    此版本中,新的 TypeScript playground 扶植广大新的选项,满含:

    • target 选项(允许顾客从 ES5 切换成 ES3、es二〇一四、esnext 等)
    • 享有标识(包蕴 strict)
    • 对日常 JavaScript 文件的支撑(使用 allowJS 和 CheckJS)

    当分享链接到 playground 示例时,那些选拔也会随处存在,这样顾客就能够更牢靠地分享示例。

    键值迭代器

    Semicolon-Aware Code Edits

    像 Visual Studio 和 Visual Studio Code 那样的编辑器能够活动应用飞速修复、重议和任何转变,举个例子从此外模块自动导入值。这么些转变由 TypeScript 驱动,老版本的 TypeScript 无条件地在每条语句的终极增加分号;不幸的是,那不相符众多客商的样式指南,好多客户对编辑器插入分号不乐意。

    在这里版本中,在选拔那类编辑时,TypeScript 能够检验文件是或不是利用分号。假如您的文本是贫乏分号,TypeScript 则不会增添分号。

    for 循环语法今后利用新的语法支持在 键+值 对上的迭代:

    Smarter Auto-Imports

    JavaScript 有超级多例外的模块语法或预订:ECMAScript 标准、Node 帮忙的模块语法或预约(CommonJS卡塔尔国、英特尔、System.js 等等。在好多情况下,TypeScript 将暗中同意使用 ECMAScript 模块语法自动导入,在富有分裂编写翻译器设置的少数 TypeScript 项目中,恐怕在有着普通 JavaScript 和 Require 调用的 Node 项目中,那经常是不相宜的。

    在 3.6 版本中,在调整怎样自动导入其余模块早先,它会翻动现存的导入。

    for (key => value in collection) {}
    

    Breaking Changes

    类成员 constructor 现在是构造函数

    依照 ECMAScript 标准,名称为 constructor 的措施的类申明未来是布局函数,无论它们是选择标志符名称注明,照旧使用字符串名称评释。

    澳门新葡4473网站 14

    澳门新葡4473网站 15

    DOM 更新

    在 lib.dom.d.ts 中曾经去除或转移了成都百货上千声称,那包涵(但不幸免卡塔尔国以下内容:

    • 大局 window 不再定义为项目 Window,而是定义为品种 Window & type of globalThis。在好几意况下,将其项目称为 typeof window
    • GlobalFetch 移除了,而是接纳 WindowOrWorkerGlobalScope
    • Navigator 上的少数非标准属性已经未有
    • experimental-webgl 移除了,而是利用 webgl 和 webgl2

    JSDoc 注脚不再统一

    在 JavaScript 文件中,TypeScript 只会在紧接 JSDoc 申明在此以前分明申明的门类。

    澳门新葡4473网站 16

    重大字无法富含转义体系

    先前,关键字被允许包涵转义体系。3.6 版本不再允许:

    澳门新葡4473网站 17

    有关 TypeScript 3.6 越多消息,请见 TypeScript 网站。使用 npm 命令获取:

    npm install -g typescript
    

    还足以因此以下方法得到编辑器扶持:

    • 下载 Visual Studio 2019/2017
    • Visual Studio Code
    • Sublime Text 3 via PackageControl

    颁发表明:

    (文/开源中黄炎子孙民共和国卡塔尔    

    更加多详细的情况见揭橥表明:

    本文由澳门新葡4473网站发布于项目,转载请注明出处:TypeScript 3.6 发布,微软脚本编程语言

    关键词:

上一篇:开放源码是开源软件吗?

下一篇:没有了