当前位置:首页 > 操作系统 > Ios

javascript – React-Native应用程序的平台特定ios / android typescript文件的相对导入

我有一个基于React-Native平台的2个不同设计的组件:MyComponent.ios.tsx和MyComponent.android.tsx.

虽然当我将我的组件导入MyView.tsx时,它会抱怨.

MyView.tsx(5,38): error TS2307: Cannot find module ‘./MyComponent’.

我试图将我的tsconfig文件路径修改为以下内容:

"paths": {
  "*": ["*", "*.ios", "*.android"]
},

虽然我还有同样的问题.

你们中的任何人都知道如何解决这个问题吗?

谢谢

解决方法:

基本上这种方法不能用于一个原因,一旦你的ts文件被编译,相对路径就不再存在,编译器就不再需要添加“.ios”或“.android”并停止抱怨,所以输出将不起作用阅读纯JS时反应原生方面.

我通过在同一个文件夹中创建一个typings(MyComponent.d.ts)文件来实现它,例如:

// This file exists for two purposes:
// 1. Ensure that both ios and android files present identical types to importers.
// 2. Allow consumers to import the module as if typescript understood react-native suffixes.
import DefaultIos from './MyComponent.ios';
import * as ios from './MyComponent.ios';
import DefaultAndroid from './MyComponent.android';
import * as android from './MyComponent.android';

declare var _test: typeof ios;
declare var _test: typeof android;

declare var _testDefault: typeof DefaultIos;
declare var _testDefault: typeof DefaultAndroid;

export * from './MyComponent.ios';

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!