附录
I. 术语
-
规范 (Spec) - TypeScript 或 Flow 代码,用于描述 Turbo Native 模块或 Fabric Native 组件的 API。由 代码生成 (Codegen) 用于生成样板代码。
-
原生模块 (Native Modules) - 没有用户界面 (UI) 的原生库。例如持久存储、通知、网络事件。您的 JavaScript 应用程序代码可以将其作为函数和对象访问。
-
原生组件 (Native Component) - 原生平台视图,可以通过 React 组件在您的应用程序 JavaScript 代码中使用。
-
旧版原生组件 (Legacy Native Components) - 在旧版 React Native 架构上运行的组件。
-
旧版原生模块 (Legacy Native Modules) - 在旧版 React Native 架构上运行的模块。
II. 代码生成类型 (Codegen Typings)
您可以使用下表作为参考,了解哪些类型受支持以及它们在每个平台上映射到的内容
Flow | TypeScript | Flow 可空支持 | TypeScript 可空支持 | Android (Java) | iOS (ObjC) |
---|---|---|---|---|---|
字符串 | 字符串 | ?字符串 | 字符串 | null | 字符串 | NSString |
布尔值 | 布尔值 | ?布尔值 | 布尔值 | null | Boolean | NSNumber |
对象字面量{| foo: 字符串, ...|} | { foo: 字符串, ...} as const | ?{| foo: 字符串, ...|} | ?{ foo: 字符串, ...} as const | - | - |
对象 [1] | 对象 [1] | ?对象 | 对象 | null | ReadableMap | @ (未类型化的字典) |
Array<T> | Array<T> | ?Array<T> | Array<T> | null | ReadableArray | NSArray (或在对象内部使用时为 RCTConvertVecToArray ) |
函数 | 函数 | ?函数 | 函数 | null | - | - |
Promise<T> | Promise<T> | ?Promise<T> | Promise<T> | null | com.facebook.react.bridge.Promise | RCTPromiseResolve 和 RCTPromiseRejectBlock |
类型联合'SUCCESS'|'FAIL' | 类型联合'SUCCESS'|'FAIL' | 仅作为回调 | - | - | |
回调() => | 回调() => | 是 | com.facebook.react.bridge.Callback | RCTResponseSenderBlock | |
数字 | 数字 | 否 | 双精度浮点数 | NSNumber |
注释:
[1] 我们强烈建议使用对象字面量而不是对象。
信息
您可能还会发现参考 React Native 中核心模块的 JavaScript 规范很有用。这些规范位于 React Native 代码库中的 Libraries/
目录中。