附錄
I. 術語
-
Spec - 描述 Turbo Native Module 或 Fabric Native 組件 API 的 TypeScript 或 Flow 程式碼。由 Codegen 用於產生樣板程式碼。
-
原生模組 - 沒有使用者介面 (UI) 的原生程式庫。範例包括持久儲存、通知、網路事件。這些可以作為函式和物件從您的 JavaScript 應用程式碼存取。
-
原生組件 - 可透過 React 組件從您的應用程式 JavaScript 程式碼取得的原生平台視圖。
-
舊版原生組件 - 在舊版 React Native 架構上執行的組件。
-
舊版原生模組 - 在舊版 React Native 架構上執行的模組。
II. Codegen 類型標註
您可以參考下表,了解支援哪些類型以及它們在每個平台中對應的類型
Flow | TypeScript | Flow 可為 Null 支援 | TypeScript 可為 Null 支援 | Android (Java) | iOS (ObjC) |
---|---|---|---|---|---|
string | string | ?string | string | null | string | NSString |
boolean | boolean | ?boolean | boolean | null | Boolean | NSNumber |
物件字面值{| foo: string, ...|} | { foo: string, ...} as const | ?{| foo: string, ...|} | ?{ foo: string, ...} as const | - | - |
Object [1] | Object [1] | ?Object | Object | null | ReadableMap | @ (未類型化的字典) |
Array<T> | Array<T> | ?Array<T> | Array<T> | null | ReadableArray | NSArray (或在物件內部使用時為 RCTConvertVecToArray ) |
Function | Function | ?Function | Function | 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 | |
number | number | 否 | double | NSNumber |
註解:
[1] 我們強烈建議使用物件字面值而不是物件。
資訊
您可能也會發現參考 React Native 中核心模組的 JavaScript 規格很有用。這些規格位於 React Native 儲存庫中的 Libraries/
目錄內。