资讯专栏INFORMATION COLUMN

React 18 进入 Beta 阶段、TypeScript 4.5 发布 | 淘系前端架构周刊 2

番茄西红柿 / 3147人阅读

摘要:同时,社区已经有直接从代码转换到的库。命令式的类型定义校验,适用于对工具类型进行单元测试。原文链接简单好懂的实现原理

???? News

React 18 进入 Beta 阶段

本月 16 日,React 官方发布 Twitter 宣布 React 18 由 Alpha 阶段进入 Beta 阶段:

原文链接:Thanks to the incredible efforts of the React 18 Working Group, were upgrading the stability of the React 18 release from Alpha to Beta!

Electron 16.0.0 发布

Release Blog:Electron 16.0.0 | Electron

TypeScript 4.5 发布

本次更新的几个重要内容包括:

  1. 字符串模板类型可以作为类型判别式,用于类型推导
export interface Success {  type: `${string}Success`;  body: string;}export interface Error {  type: `${string}Error`;  message: string;}export function handler(r: Success | Error) {  if (r.type === HttpSuccess) {    // r 会被推导为 Success 类型    let token = r.body;  }}复制代码
  1. 新的 module 配置 es2022,允许在 TypeScript 中使用 es2022 语法(top-level await
  2. 在使用条件类型时消除尾递归
  3. 允许在导入类型时使用新的类型导入修饰符
import type { BaseType } from ./some-module.js;import { someFunc } from ./some-module.js;export class Thing implements BaseType {  // ...}复制代码

现在可以改写为:

import { someFunc, type BaseType } from "./some-module.js";export class Thing implements BaseType {  // ...}复制代码
  1. &etc.

Release Blog:Announcing TypeScript 4.5 - TypeScript

???? Open Source

Zod

适用于 TypeScript 的静态类型校验库,适用于在框架层辅助建立全链路的类型安全,如一体化框架 BlitzJS。同时,社区已经有直接从 TS 代码转换到 Zod Schema 的库。

GitHub Repo:colinhacks/zod: TypeScript-first schema validation with static type inference

tsd

命令式的 TypeScript 类型定义校验,适用于对工具类型进行单元测试。

GitHub Repo:SamVerschueren/tsd: Check TypeScript type definitions

Vitedge

基于 Vite 的 ESR 支持。

GitHub Repo:frandiox/vitedge: Edge-side rendering and fullstack Vite framework

???? Article

TypeScript 之 More on Functions

原文链接:TypeScript 之 More on Functions

TypeScript 之 Narrowing

文章通过 case by case 的方式讲解了 TypeScript 中的各种类型收窄,其中一段关于类型判断式的代码示例非常值得学习!

function isFish(pet: Fish | Bird): pet is Fish {  return (pet as Fish).swim !== undefined;}复制代码

通过类型判断式的方式,能够有效解决 TypeScript 类型推导错误的问题,在编码阶段即可发现代码问题。

例如:

interface Fish {  swim: () => void;}interface Bird {  fly: () => void;}function isFish(pet: Fish | Bird): pet is Fish {  return Boolean((pet as Fish).swim);}function petFuncCall(pet: Fish | Bird) {  if (isFish(pet)) {    // pet: Fish    pet.swim();  } else {    // pet: Bird    pet.fly();  }}复制代码

如果 isFish 方法的返回值定义不为 pet is Fish,而是 boolean,则 TypeScript 就无法做出正确的类型推导:

Playground:TypeScript Playground

原文链接:TypeScript 系列之 Narrowing - 知乎

Svelte 实现原理

文章从 Svelte 的编译产物入手,详细介绍了 Svelte 的工作原理,清晰易懂。

原文链接:简单好懂的 Svelte 实现原理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124799.html

相关文章

  • Nuxt 3 即将发布、layui 即将退出历史舞台 | 淘系前端架构周刊 210927 期

    摘要:即将发布经过漫长的等待,即将发布。是一款很不错的组件库,虽然在的下载量仍远高于,但不可否认的是在生态和社区活跃度上,更胜一筹。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,...

    NusterCache 评论0 收藏0
  • 淘宝 NPM 镜像切换新域名、React Router v6 发布 | 淘系前端架构周刊 21111

    摘要:淘宝镜像切换新域名淘宝镜像站自年正式对外服务,一开始只是想简单地做的中国镜像站点,回馈国内前端社区,不知不觉竟然一直运行到现在。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1...

    番茄西红柿 评论0 收藏2637
  • Next.js 12 正式发布、Yarn 3.1 发布 | 淘系前端架构周刊 211101 期

    摘要:配合下文中的重新构想原子化一起食用。浏览器支持文件格式支持需要用代码来筛选中所需的数据时非常实用,显著提高效率。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.ma...

    focusj 评论0 收藏0
  • 前端每周清单年度总结与盘点

    摘要:前端每周清单年度总结与盘点在过去的八个月中,我几乎只做了两件事,工作与整理前端每周清单。本文末尾我会附上清单线索来源与目前共期清单的地址,感谢每一位阅读鼓励过的朋友,希望你们能够继续支持未来的每周清单。 showImg(https://segmentfault.com/img/remote/1460000010890043); 前端每周清单年度总结与盘点 在过去的八个月中,我几乎只做了...

    jackwang 评论0 收藏0
  • ​icestark 2.6.0 发布:支持 Vite 微应用、TypeScript 4.5 Beta

    .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body...

    levy9527 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<