跳到主要內容

附錄

I. 術語

  • Spec - 描述 Turbo Native Module 或 Fabric Native 組件 API 的 TypeScript 或 Flow 程式碼。由 Codegen 用於產生樣板程式碼。

  • 原生模組 - 沒有使用者介面 (UI) 的原生程式庫。範例包括持久儲存、通知、網路事件。這些可以作為函式和物件從您的 JavaScript 應用程式碼存取。

  • 原生組件 - 可透過 React 組件從您的應用程式 JavaScript 程式碼取得的原生平台視圖。

  • 舊版原生組件 - 在舊版 React Native 架構上執行的組件。

  • 舊版原生模組 - 在舊版 React Native 架構上執行的模組。

II. Codegen 類型標註

您可以參考下表,了解支援哪些類型以及它們在每個平台中對應的類型

FlowTypeScriptFlow 可為 Null 支援TypeScript 可為 Null 支援Android (Java)iOS (ObjC)
stringstring?stringstring | nullstringNSString
booleanboolean?booleanboolean | nullBooleanNSNumber
物件字面值
{| foo: string, ...|}
{ foo: string, ...} as const?{| foo: string, ...|}?{ foo: string, ...} as const--
Object [1]Object [1]?ObjectObject | nullReadableMap@ (未類型化的字典)
Array<T>Array<T>?Array<T>Array<T> | nullReadableArrayNSArray (或在物件內部使用時為 RCTConvertVecToArray)
FunctionFunction?FunctionFunction | null--
Promise<T>Promise<T>?Promise<T>Promise<T> | nullcom.facebook.react.bridge.PromiseRCTPromiseResolveRCTPromiseRejectBlock
類型聯集
'SUCCESS'|'FAIL'
類型聯集
'SUCCESS'|'FAIL'
僅作為回呼--
回呼
() =>
回呼
() =>
com.facebook.react.bridge.CallbackRCTResponseSenderBlock
numbernumberdoubleNSNumber

註解:

[1] 我們強烈建議使用物件字面值而不是物件。

資訊

您可能也會發現參考 React Native 中核心模組的 JavaScript 規格很有用。這些規格位於 React Native 儲存庫中的 Libraries/ 目錄內。