TypeScript 3.8 RC 发布

xplanet
 xplanet
发布于 2020年02月10日
收藏 4

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/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:TypeScript 3.8 RC 发布
加载中

最新评论(3

pauli
pauli
# 真难看,为啥不用 private 关键词
百小僧
百小僧
# 可以禁止派生类同名属性覆盖,而且具有private特性。
单纯的private标记的话,派生类依旧可以复写同名属性。
依剑_听雨
依剑_听雨
# 真难看
返回顶部
顶部