You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flow中是否存在与TypeScript的`as const`断言等价的语法?

Flow中TypeScript as const的等价替代方案

目前Flow稳定版尚未推出和as const完全对等的原生语法糖,你提到的开放2年的官方相关提案截至当前仍无落地进展。
日常开发可以用以下两种方案替代繁琐的手动类型标注:

  • 方案1:使用Object.freeze
    Flow会对Object.freeze冻结的对象自动做字面量类型收窄,同时标记属性为只读,推导效果和TS的as const几乎一致:
    const realyConstObj = Object.freeze({key1: 'val1', key2: 'val2'})
    // Flow推导类型:{| +key1: 'val1', +key2: 'val2' |}
    
  • 方案2:封装通用收窄工具函数
    如果你不需要属性只读标记,可以自定义工具函数实现类型收窄:
    function asConst<T>(val: T): T {
      return val;
    }
    
    const realyConstObj = asConst({key1: 'val1', key2: 'val2'})
    // 推导类型:{| key1: 'val1', key2: 'val2' |}
    

内容的提问来源于stack exchange,提问作者Eliav Louski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:06:03