Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React本机应用程序平台特定ios/android typescript文件的相对导入_Javascript_Android_Ios_Typescript_React Native - Fatal编程技术网

Javascript React本机应用程序平台特定ios/android typescript文件的相对导入

Javascript React本机应用程序平台特定ios/android typescript文件的相对导入,javascript,android,ios,typescript,react-native,Javascript,Android,Ios,Typescript,React Native,我有一个基于React Native平台的组件,它有两种不同的设计:MyComponent.ios.tsx和MyComponent.android.tsx 虽然当我将组件导入到MyView.tsx时,它会抱怨 tsx(5,38):错误TS2307:找不到模块“./MyComponent” 我已尝试将我的tsconfig文件路径修改为以下内容: "paths": { "*": ["*", "*.ios", "*.android"] }, 虽然我仍然有同样的问题 你们有谁知道如何解决这个问题吗

我有一个基于React Native平台的组件,它有两种不同的设计:
MyComponent.ios.tsx
MyComponent.android.tsx

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

tsx(5,38):错误TS2307:找不到模块“./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';

您是如何导入MyComponent的?是否像下面的
从'../MyComponent'导入MyComponent'如何导入此文件的可能副本?当我们从“/MyComponent”
导入“
导入{component}”时,它会失败,出现“找不到模块:错误无法解析MyComponent”。很抱歉,我一年前写了这篇文章,我不记得确切的语法是什么,但听起来代码中可能存在命名冲突,确保./MyComponent正在导出MyComponent命名类,并在此处添加以下内容:行
declare var\u test:typeof ios
声明var\u测试:android的类型android
ios
出现分歧,则code>是一种让TypeScript编译器抱怨的技巧。然而,编译器只会在
tsconfig.json
中的
skipLibCheck:false
时抱怨(默认)。谢谢,使用这个答案(有点),它可以工作!这里是FontFamilies.d.ts的例子。
\u测试
技巧是否也适用于组件?我有一个具有相同props定义的组件,但仍然得到
后续变量声明必须具有相同类型的
错误。。。