附录
一、术语
整个与新架构相关的指南将遵循以下术语:
- 
Spec - TypeScript 或 Flow 形式的代码,用于描述 Turbo Native 模块或 Fabric 原生组件的 API。 Codegen 根据它来生成样板代码。 
- 
Fabric 原生组件 - 指已经适配以与新架构(即新渲染器)良好协同工作的组件。为简洁起见,您可能会看到它们被称为Fabric 组件。 
- 
Turbo 原生模块 - 指已经适配以与新架构(即新原生模块系统)良好协同工作的模块。为简洁起见,您可能会看到它们被称为Turbo 模块。 
- 
传统原生组件 - 指运行在 React Native 旧架构上的组件。 
- 
传统原生模块 - 指运行在 React Native 旧架构上的模块。 
II. Codegen 类型
您可以使用以下表格作为参考,了解每种类型在不同平台上的支持情况:
| Flow | TypeScript | Flow Nullable Support | TypeScript Nullable Support | Android (Java) | iOS (ObjC) | 
|---|---|---|---|---|---|
| string | string | ?string | string | null | string | NSString | 
| boolean | boolean | ?boolean | boolean | null | Boolean | NSNumber | 
| Object Literal {| foo: string, ...|} | { foo: string, ...} as const | ?{| foo: string, ...|} | ?{ foo: string, ...} as const | - | - | 
| Object [1] | Object [1] | ?Object | Object | null | ReadableMap | @(untyped dictionary) | 
| Array<T> | Array<T> | ?Array<T> | Array<T> | null | ReadableArray | NSArray(orRCTConvertVecToArraywhen used inside objects) | 
| Function | Function | ?Function | Function | null | - | - | 
| Promise<T> | Promise<T> | ?Promise<T> | Promise<T> | null | com.facebook.react.bridge.Promise | RCTPromiseResolveandRCTPromiseRejectBlock | 
| Type Unions 'SUCCESS'|'FAIL' | Type Unions 'SUCCESS'|'FAIL' | Only as callbacks | - | - | |
| Callbacks () => | Callbacks () => | Yes | com.facebook.react.bridge.Callback | RCTResponseSenderBlock | |
| number | number | No | double | NSNumber | 
Notes:
[1] 我们强烈建议使用对象字面量而不是对象。
info
您也可以参考 React Native 核心模块的 JavaScript 规范。这些位于 React Native 仓库的 Libraries/ 目录中。