???? News
React 18 進(jìn)入 Beta 階段
本月 16 日,React 官方發(fā)布 Twitter 宣布 React 18 由 Alpha 階段進(jìn)入 Beta 階段:
Electron 16.0.0 發(fā)布
Release Blog:Electron 16.0.0 | Electron
TypeScript 4.5 發(fā)布
本次更新的幾個重要內(nèi)容包括:
- 字符串模板類型可以作為類型判別式,用于類型推導(dǎo)
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 會被推導(dǎo)為 Success 類型 let token = r.body; }}復(fù)制代碼
- 新的
module
配置es2022
,允許在 TypeScript 中使用es2022
語法(top-levelawait
) - 在使用條件類型時消除尾遞歸
- 允許在導(dǎo)入類型時使用新的類型導(dǎo)入修飾符
import type { BaseType } from ./some-module.js;import { someFunc } from ./some-module.js;export class Thing implements BaseType { // ...}復(fù)制代碼
現(xiàn)在可以改寫為:
import { someFunc, type BaseType } from "./some-module.js";export class Thing implements BaseType { // ...}復(fù)制代碼
- &etc.
Release Blog:Announcing TypeScript 4.5 - TypeScript
???? Open Source
Zod
適用于 TypeScript 的靜態(tài)類型校驗(yàn)庫,適用于在框架層輔助建立全鏈路的類型安全,如一體化框架 BlitzJS。同時,社區(qū)已經(jīng)有直接從 TS 代碼轉(zhuǎn)換到 Zod Schema 的庫。
GitHub Repo:colinhacks/zod: TypeScript-first schema validation with static type inference
tsd
命令式的 TypeScript 類型定義校驗(yàn),適用于對工具類型進(jìn)行單元測試。
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 中的各種類型收窄,其中一段關(guān)于類型判斷式的代碼示例非常值得學(xué)習(xí)!
function isFish(pet: Fish | Bird): pet is Fish { return (pet as Fish).swim !== undefined;}復(fù)制代碼
通過類型判斷式的方式,能夠有效解決 TypeScript 類型推導(dǎo)錯誤的問題,在編碼階段即可發(fā)現(xiàn)代碼問題。
例如:
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(); }}復(fù)制代碼
如果 isFish
方法的返回值定義不為 pet is Fish
,而是 boolean
,則 TypeScript 就無法做出正確的類型推導(dǎo):
Playground:TypeScript Playground
原文鏈接:TypeScript 系列之 Narrowing - 知乎
Svelte 實(shí)現(xiàn)原理
文章從 Svelte 的編譯產(chǎn)物入手,詳細(xì)介紹了 Svelte 的工作原理,清晰易懂。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/124799.html