TypeScript 3.8 RC 发布

TypeScript 3.8 的候选版本发布了。TypeScript 3.8 带来了许多新特性,包括新的 ECMAScript 标准功能,仅用于导入/导出类型的新语法等等。

仅类型导入和导出

TypeScript 3.8 为仅类型的导入和导出添加了新的语法。

import type { SomeThing } from "./some-module.js";

export type { SomeThing };

导入类型仅导入要用于类型注释和声明的声明。它总是会被完全擦除,因此在运行时不会有任何残留。 同样,导出类型仅提供可用于类型上下文的导出,并且也会从 TypeScript 的输出中删除。

ECMAScript 私有字段  

TypeScript 3.8 带来了对 ECMAScript 私有字段的支持,这是 Stage-3 类字段提案的一部分,由彭博社推动完成。

class Person {
    #name: string

    constructor(name: string) {
        this.#name = name;
    }

    greet() {
        console.log(`Hello, my name is ${this.#name}!`);
    }
}

let jeremy = new Person("Jeremy Bearimy");

jeremy.#name
//     ~~~~~
// Property '#name' is not accessible outside class 'Person'
// because it has a private identifier.

与常规属性(甚至是使用 private 修饰符声明的属性)不同,私有字段要牢记一些规则

私有字段的另一个好处是唯一性,每个字段名称对于包含类都是唯一的。另一点值得注意的是,访问任何其他类型的私有字段将导致 TypeError!

更多详情可见发布公告:

https://devblogs.microsoft.com/typescript/announcing-typescript-3-8-rc/

猜你喜欢

转载自www.oschina.net/news/113272/typescript-3-8-rc-released