توسيع أنواع TypeScript للوحدات الأصلية في React Native


لدي وحدة أصلية وأود أن أقوم بكتابتها.

إليك مثال على واجهة الوحدة الخاصة بي

export interface BBAudioPlayer {
  playSound: (sound: 'click' | 'tada') => Promise<void>;
  pause: () => Promise<void>;
}

وهكذا أستخدمه:

NativeModules.BBAudioPlayer.playSound('tada');

كيف يمكنني توسيع NativeModules لإضافة أنواع الوحدة الجديدة الخاصة بي؟

الإجابة رقم 1

// extendNativeModules.d.ts
// import original module declarations
import 'react-native';

export interface BBAudioPlayerInterface {
  playSound: (sound: 'click' | 'tada') => Promise<void>;
  pause: () => Promise<void>;
}

// and extend them!
declare module 'react-native' {

  interface NativeModulesStatic {
    BBAudioPlayer: BBAudioPlayerInterface;
  }
}