TypeScript 5.1发布,新功能更新

这篇具有很好参考价值的文章主要介绍了TypeScript 5.1发布,新功能更新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:返回类型增加undefined

type fun = () => undefined;

这里设置了一个别名 fun,当时使用它的时候,我们必须显示返回一个 undefined

const f: fun = () => {
  return undefined;
};
f();

现在你可以直接设置返回类型:

const f: fun = ():undefined => {
};
f();

而不仅限于 void any

4.3版本:❌
5.1版本:✅

TypeScript 5.1发布,新功能更新

2:getter可以设置和 setter 的不相关类型

const point = {
    get value(): number {
        return 0;
    },
    set value(value: string) {
    }
};
point.value = '888'; 
console.log(point.value); 

在之前版本,get 返回类型应该为 set 的子类型,如下:

const point = {
    get value(): number {
        ......
    },
    set value(value: string|number) {
    }
};

在新版本 5.1 中,宽松了这种约束。

4.3版本:❌
5.1版本:✅

TypeScript 5.1发布,新功能更新
但是,您应该设置注释,否则您可能会向他人表达错误的解释。

3:对 JSX 元素和 JSX 标签的异步支持

我们看下 React 对 JSX 类型的部分定义:

namespace JSX {
        // 用于普通的HTML元素
        interface IntrinsicElements {
            // 为每一个HTML元素提供了对应的属性
            // ...
            // 其他HTML元素
        }

        // 用于React组件
        interface Element extends React.ReactElement<any, any> { }
        interface ElementClass extends React.Component<any> {
            render(): React.ReactNode;
        }
        interface ElementAttributesProperty { props: {}; }
        interface ElementChildrenAttribute { children?: {}; }
        // ...
}

typecript 总是通过 JSX.Element 来判断 JSX 的类型,而React 的未来版本可能会对返回 Promises 的组件提供有限的支持。

所以为了解决这个问题,typescript 5.1 增加了新属性 ElementType ✅,以供用户指定返回的具体的异步组件类型。

如果不是很理解,你可以把它当成一种约定:“我为了适应你,我们共同创建一个新的约定。”

“真好,我感到孤单了,或许可能我应该得到一个拥抱的”

4:支持命名空间属性名称 JSX

使用 JSX 时,ts 支持了以下写法:a:b

// ✅
<Foo a:b="hello" />

5:typeRoots在模块更新

typeRoots 的主要作用是告诉 TypeScript 编译器在哪些目录下查找类型定义文件(.d.ts 文件)。

默认情况下会查找node_modules/@types目录下的.d.ts文件。

如:

{
  "compilerOptions": {
    "typeRoots": ["node_modules/@types"],
    ...
  }
}

4.3版本:❌

  1. 仅可以解析为目录

5.1版本:✅

  1. 可以解析为目录或文件(如果这里解释有误,劳烦通知我纠正,感谢)

->详细内容请看这里<-

6:JSX 标签的链接游标

这里的更新功能主要是针对于 vscode 的。其他工具应该也包含该功能。

TypeScript 5.1发布,新功能更新文章来源地址https://www.toymoban.com/news/detail-493269.html

  1. 使用快捷键 Ctrl+, (ctrl加逗号)
  2. 输入Linked Editing
  3. 找到 “Editor: Linked Editing” 这个选项,然后勾选它

7:@param JSDoc 标签的代码段补全

8:优化/重大变化部分

  1. 避免不必要的类型实例化
  2. 联合文字的否定案例检查
  3. 减少对扫描器的调用以进行 JSDoc 解析
  4. ES2020 和 Node.js 14.17 作为最低运行时要求
  5. 明确typeRoots禁用向上行走node_modules/@types

到了这里,关于TypeScript 5.1发布,新功能更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 园子的现代化建设-新功能:发布合集预览版

    园子的现代化建设-新功能:发布合集预览版

    为了方便大家管理系列博文,今天发布一个预览版新功能——合集。 您可以在博客后台 合集 栏目中创建新合集 或者在编辑博文时快捷地创建新合集 然后可以在编辑时将博文与合集关联 或者在 合集 栏目中选择对应的合集点击 关联 ,然后选择博文加入合集 创建合集并关联

    2023年04月18日
    浏览(10)
  • After Effects 2023发布,有哪些值得关注的新功能?

    After Effects 2023发布,有哪些值得关注的新功能?

    After Effects 2023 (版本 23.4) 发布 有哪些值得关注的新功能?AE2023改进了用户请求的工作流程并进行了重要修复,用户可在 After Effects 中更高效地工作,在不影响创意构想的情况下设计更加优质的细节。 AE2023 for Mac AE2023 新增功能如下: 文本和形状图层的“属性”面板 可在易于

    2024年02月09日
    浏览(8)
  • Docker Desktop 4.15 正式发布,这里是新功能

    Docker Desktop 4.15 正式发布,这里是新功能

    Docker Desktop 4.15现在可用于所有平台:Linux、Windows 和 macOS。它附带 Docker Compose v2.13.0、Containerd v1.6.10 和 Docker Hub Tool v0.4.5 2 VirtioFS 正式发布 新的快速搜索功能 在任何 IDE 中使用开发环境 扩展下的新构建选项卡 能够使用 containerd 运行 Wasm 容器 新的 docker extension share CLI 早在 3 月

    2024年02月02日
    浏览(24)
  • Nightingale发布v5.9.2,新功能解决多个生产痛点,真香

    Nightingale发布v5.9.2,新功能解决多个生产痛点,真香

    Nightingale | 夜莺监控,一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),

    2024年02月06日
    浏览(6)
  • iOS 16.4更新指南:问题解答与新功能一览

    iOS 16.4更新指南:问题解答与新功能一览

    我应该更新到iOS 16.4吗?这是许多iPhone用户在新更新可用时问自己的一个常见问题。最新的iOS版本提供了各种功能和改进,因此更新的诱惑力很大。 但是,在更新之前,你应该考虑几个因素,以确保安装过程顺利成功。这些因素包括安全性、兼容性、存储空间以及遇到问题的

    2024年02月09日
    浏览(9)
  • Vant 4.6.4发布,增加了一些新功能,并修复了一些bug

    Vant 4.6.4发布,增加了一些新功能,并修复了一些bug

    导读 Vant 4.6.4发布,增加了一些新功能,并修复了一些bug等。 新功能 feat(area-data): 更新芜湖的县区数据,由 nivin-studio 在 #12122 中贡献 feat(Locale): 添加塞尔维亚语到国际化,由 RogerZXY 在 #12145 中贡献 feat(ImagePreview): 添加 closeOnClickOverlay 选项,由 chenjiahan 在 #12153 中贡献 feat(List)

    2024年02月11日
    浏览(9)
  • 4月更新!EasyOps®全平台27项新功能一口气来袭~

    4月更新!EasyOps®全平台27项新功能一口气来袭~

    又到了每月产品盘点时刻,27大新功能上线和升级优化,设计Hyperlnsight超融合持续观测平台、DevOps持续交付平台、AutoOps自动化运维平台、ITSM服务平台、公共服务,在不断的技术创新过程中,进一步加速IT运维效率升级。 下面和小编一起来了解本次更新详情吧! Hyperlnsight 1)

    2023年04月27日
    浏览(6)
  • iOS 17 正式版预计 9 月中下旬发布,部分新功能延后推出

    iOS 17 正式版预计 9 月中下旬发布,部分新功能延后推出

    苹果公司预计将在 9 月中下旬推出 iOS 17 正式版,iPhone XS 及更新的机型可免费更新。这次更新包含了许多新功能,但 是 根据苹果公司的网站显示,并不是所有的功能都会立即可用。苹果表示 有一些功能 “将在今年晚些时候推出” , 比如:日记应用、 Apple Music 协作播放列表

    2024年02月12日
    浏览(35)
  • 折叠屏手机再添新功能?OPPOColorOS14发布,打通 App 和终端互联

    折叠屏手机再添新功能?OPPOColorOS14发布,打通 App 和终端互联

    近年来,多终端互联互通已经成为数码产品的发展趋势,各家手机品牌也在不断提升相关功能。 根据数码博主 @数码闲聊站的爆料,OPPO即将发布ColorOS 14,并特别提供了针对折叠屏手机的Fold系统。该系统在横屏模式下对自带应用进行了更好的适配,过渡动画更加流畅,UI界面

    2024年02月12日
    浏览(9)
  • Flutter 3.0 发布啦~快来看看有什么新功能-2022 Google I/O

    Flutter 3.0 发布啦~快来看看有什么新功能-2022 Google I/O

    我不敢相信又到了另一个主要的Flutter稳定版本的时候了。是的,各位,欢迎Flutter 3.0。 去年,在Google I/O上,Flutter团队宣布了Flutter 2.2。从那时起,Flutter有一些重大改进和稳定的发布。AtInvertase,作为一家开源公司,我们也感谢数百名社区贡献者为Flutter所做的所有辛勤工作;

    2024年02月13日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包