Skip to main content
Version: Next

부록

I. 용어 설명

  • 스펙(Spec) - Turbo Native Module이나 Fabric Native 컴포넌트의 API를 설명하는 TypeScript 또는 Flow 코드. **코드젠(Codegen)**이 보일러플레이트 코드를 생성할 때 사용한다.

  • 네이티브 모듈(Native Modules) - 사용자 인터페이스(UI)가 없는 네이티브 라이브러리. 예를 들어 영구 저장소, 알림, 네트워크 이벤트 등이 있다. 이들은 자바스크립트 애플리케이션 코드에서 함수와 객체로 접근할 수 있다.

  • 네이티브 컴포넌트(Native Component) - React 컴포넌트를 통해 애플리케이션의 자바스크립트 코드에서 사용할 수 있는 네이티브 플랫폼 뷰.

  • 레거시 네이티브 컴포넌트(Legacy Native Components) - 이전 React Native 아키텍처에서 실행되는 컴포넌트.

  • 레거시 네이티브 모듈(Legacy Native Modules) - 이전 React Native 아키텍처에서 실행되는 모듈.

II. 코드 생성 타입

다음 표는 각 플랫폼에서 지원되는 타입과 그에 매핑되는 타입을 참조할 수 있도록 정리한 것이다:

FlowTypeScriptFlow Nullable SupportTypeScript Nullable SupportAndroid (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
numbernumber지원하지 않음doubleNSNumber

[1] 객체(Object)보다는 객체 리터럴(Object literal)을 사용하는 것을 강력히 권장한다.

info

React Native의 코어 모듈에 대한 자바스크립트 명세를 참고하는 것도 도움이 될 수 있다. 이 명세는 React Native 저장소의 Libraries/ 디렉토리 안에 위치한다.