千家信息网

TypeScript4.0的新功能怎么使用

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"TypeScript4.0的新功能怎么使用",在日常操作中,相信很多人在TypeScript4.0的新功能怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年02月02日TypeScript4.0的新功能怎么使用

这篇文章主要介绍"TypeScript4.0的新功能怎么使用",在日常操作中,相信很多人在TypeScript4.0的新功能怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"TypeScript4.0的新功能怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

4.0 版本的主要更新内容如下:

  • 可变参数元组类型

  • 标记的元组元素

  • 构造函数的类属性推断

  • 短路分配运算符

  • catch 子句中的unknown

  • 定制 JSX 工厂

  • --noEmitOnError参数build模式下的速度提升

  • --incremental with --noEmit

  • 编辑器改进

    • 转换为可选链接

    • 支持/** @deprecated */

    • 启动时的部分编辑模式

    • 更智能的自动导入

  • Breaking Changes

构造函数的类属性推断

noImplicitAny 被启用时,TypeScript 4.0 现在可以使用控制流分(control flow analysis)析来确定类中的属性类型。

class Square {    // Previously: implicit any!    // Now: inferred to `number`!    area;    sideLength;    constructor(sideLength: number) {        this.sideLength = sideLength;        this.area = sideLength ** 2;    }}

如果并非将构造函数的所有路径都分配给实例成员,则该属性可能被视为undefined

class Square {    sideLength;    constructor(sideLength: number) {        if (Math.random()) {            this.sideLength = sideLength;        }    }    get area() {        return this.sideLength ** 2;        //     ~~~~~~~~~~~~~~~        // error! Object is possibly 'undefined'.    }}

在更清楚的情况下(例如具有某种initialize方法),如果位于strictPropertyInitialization中,可能会需要显式类型注释以及定值赋值断言(!)

class Square {    // definite assignment assertion    //        v    sideLength!: number;    //         ^^^^^^^^    // type annotation    constructor(sideLength: number) {        this.initialize(sideLength)    }    initialize(sideLength: number) {        this.sideLength = sideLength;    }    get area() {        return this.sideLength ** 2;    }}

短路分配运算符

JavaScript 和其他很多语言都支持复合赋值运算符。复合赋值运算符将一个运算符应用到两个参数上,然后将结果赋值到左边。如下:

/ Addition// a = a + ba += b;// Subtraction// a = a - ba -= b;// Multiplication// a = a * ba *= b;// Division// a = a / ba /= b;// Exponentiation// a = a ** ba **= b;// Left Bit Shift// a = a << ba <<= b;

JavaScript 中的许多运算符都有一个对应的赋值运算符,但有三个例外:逻辑和(&&)、逻辑或(||),以及空值合并(??)。

TypeScript 4.0 为上述三个运算符增加了对应的赋值运算符支持:

let values: string[];// Before(values ?? (values = [])).push("hello");// After(values ??= []).push("hello");a ||= b;// actually equivalent toa || (a = b);

到此,关于"TypeScript4.0的新功能怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0