我有一个基于 React-Native 平台有 2 种不同设计的组件:MyComponent.ios.tsx
and MyComponent.android.tsx
.
虽然当我将组件导入MyView.tsx
,它抱怨。
MyView.tsx(5,38):错误 TS2307:找不到模块“./MyComponent”。
我尝试修改我的tsconfig
文件路径如下:
"paths": {
"*": ["*", "*.ios", "*.android"]
},
虽然我仍然有同样的问题。
你们中有人知道如何解决这个问题吗?
Thanks
基本上这种方法不会工作,原因有一个,一旦你的 ts 文件被转译,相对路径就不再存在,编译器无法添加“.ios”或“.android”并停止抱怨,因此输出将无法工作阅读纯JS时react-native端。
我通过在同一文件夹中创建一个打字(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';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)