如何在打字稿中使用 React Native 的特定于平台的扩展?

问题描述

问题:

我有一个带有平台特定代码的 react native 自定义钩子,我需要根据平台导入它。如果我像 import useWifi from 'hooks/use-wifi.android'; 一样导入它,一切正常(在 android 上)。

我尝试过的:

按照 rn 对 platform specific code 的说明,我有以下文件结构

...
hooks
  ...
  use-wifi.android.ts
  use-wifi.ios.ts
...

但是,当我尝试像 import useWifi from 'hooks/use-wifi'; 一样导入它时,打字稿类型检查未通过,并且在 Metro 中出现此错误

error: Error: Unable to resolve module `hooks/use-wifi` from `src/screens/home/index.tsx`: hooks/use-wifi Could not be found within the project.

添加一个 use-wifi.d.ts 文件

export * from './use-wifi.android';
export * from './use-wifi.ios';

这允许 tsc 通过,但 Metro 仍然无法捆绑。

我想我可以有一个 hooks/use-wifi.ts 文件并在那里拆分代码,但如果可能的话,我宁愿这样做。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)