进阶 reactnative.dev 2026-10-11 06:04:21 · 23 阅读

第12章 附录 · React Native(v0.77)

版本:0.77 附录

一、术语 ​

Spec - 描述 Turbo Native 模块或 Fabric Native 组件 API 的 TypeScript 或 Flow 代码。供 Codegen 生成样板代码使用。

Native Modules - 没有用户界面(UI)的原生库。例如持久存储、通知、网络事件等。这些模块在 JavaScript 应用代码中表现为函数和对象。

Native Component - 可通过 React 组件在应用 JavaScript 代码中访问的原生平台视图。

Legacy Native Components - 运行在旧版 React Native 架构上的组件。

Legacy Native Modules - 运行在旧版 React Native 架构上的模块。

二、Codegen 类型映射 ​

以下表格可作为参考,列出受支持的类型及其在各平台上的对应关系:

FlowTypeScriptFlow 空值支持TypeScript 空值支持Android (Java)iOS (ObjC)stringstring?stringstring | nullstringNSStringbooleanboolean?booleanboolean | nullBooleanNSNumberObject Literal { foo: string, ... } ? { foo: string, ... } as const ? { foo: string, ... } --Object [1]Object [1]?ObjectObject | nullReadableMap@ (无类型字典)ArrayArray?ArrayArray | nullReadableArrayNSArray(或在对象内部使用时为 RCTConvertVecToArray)FunctionFunction?FunctionFunction | null--PromisePromise?PromisePromise | nullcom.facebook.react.bridge.PromiseRCTPromiseResolve 和 RCTPromiseRejectBlockType Unions 'SUCCESS' | 'FAIL' Type Unions 'SUCCESS' | 'FAIL' 仅作为回调--Callbacks () => Callbacks () => 支持 com.facebook.react.bridge.CallbackRCTResponseSenderBlocknumbernumber不支持doubleNSNumber

注:​

[1] 强烈建议使用对象字面量(Object literals)而非通用对象(Objects)。

info 参考 React Native 核心模块的 JavaScript 规范也有帮助。这些规范位于 React Native 仓库的 Libraries/ 目录下。

评论 (0)