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

带可选布尔类型与默认值的JS函数声明:文档与命名咨询

关于这个函数声明的详解

嘿,作为React Native新手能注意到这个细节真的很棒!让我帮你拆解清楚这个语法:

这个声明是两个特性的组合

你看到的functionName(isTrue: ?boolean = true)其实是Flow静态类型注解 + ES6函数默认参数的结合,没有单独的统一名称,我们可以拆开来看:

1. : ?boolean — Flow的可空类型注解

这是Facebook为JavaScript推出的静态类型检查工具Flow里的语法:

  • : boolean 是类型注解,用来明确参数isTrue的预期类型是布尔值
  • 前面的?表示这个类型是可空的,意思是isTrue不仅可以是true/false,还允许传入null或undefined

2. = true — ES6的函数默认参数

这是ES6(ECMAScript 2015)新增的特性:当调用函数时没有传入isTrue参数,或者传入的是undefined,这个参数会自动使用true作为默认值。

文档参考

  • 关于Flow的可空类型:你可以在Flow官方文档的「Nullable Types」章节找到详细说明
  • 关于ES6默认参数:可以查看MDN的函数默认参数相关内容,或者ES6官方规范的对应部分

调用场景示例

为了帮你更好理解,举几个实际调用的情况:

  • functionName() → isTrue取值为true(默认参数生效)
  • functionName(true) → isTrue取值为true
  • functionName(false) → isTrue取值为false
  • functionName(null) → Flow会允许这个调用,isTrue取值为null(函数里的if判断会把null视为false)
  • functionName(undefined) → isTrue取值为true(默认参数生效)

因为React Native项目经常会用Flow做类型检查,所以这种带类型注解的函数声明在RN代码里特别常见哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 11:27:45