TypeScript 3.8 的候選版本發布了。TypeScript 3.8 帶來了許多新特性,包括新的 ECMAScript 標準功能,僅用於導入/導出類型的新語法等等。
TypeScript 3.8 為僅類型的導入和導出添加了新的語法。
import type { SomeThing } from "./some-module.js"; export type { SomeThing };
導入類型僅導入要用於類型註釋和聲明的聲明。它總是會被完全擦除,因此在運行時不會有任何殘留。 同樣,導出類型僅提供可用於類型上下文的導出,並且也會從 TypeScript 的輸出中刪除。
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/
[admin
]