React Native расширяет типы TypeScript NativeModules - PullRequest
3 голосов
/ 18 июня 2020

У меня есть собственный модуль, и я хотел бы его напечатать.

Вот пример интерфейса моего модуля

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

и вот как я его использую:

NativeModules.BBAudioPlayer.playSound('tada');

Как можно расширить NativeModules, чтобы добавить типы моего нового модуля?

1 Ответ

2 голосов
/ 19 июня 2020
// 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;
  }
}

enter image description here

...