我有一个iOS特定代码(类定义),并且想在单独的iOS特定文件中包含。
所以我创建了两个文件
utils2.ios.ts< - 在此处添加我的代码
utils2.android.ts
然后从另一个文件中,我做到了:
导入utils2 = require(" ./utils2");
,但是我收到的错误消息未找到模块。
我必须走这条路线,因为我在代码,如果我只有一个文件,我会在Android上获得运行时错误。
打字稿支持平台特定文件?
或其他选项 - 在TS File
中可以使用这种选择如果ios
做这个
结束
类似于C预处理器
您只需使用一个utils.ts文件就可以通过,在其中您可以执行提到的平台特定逻辑。您关于module not found
的问题可能只是该模块的一个路径问题,而不是该模块实际上不存在。另请注意,Typescript并不真正"支持"平台特定文件。NativeScript获取这些.android.ts
和.ios.ts
文件,并在运行时加载您在运行的平台上所需的文件。因此,只有真正与TS相关的fyi:)
NativeScript在tns-core-modules
中提供了platform
模块。从代码中的平台模块导入{ isAndroid }
或{ isIOS }
,并将其用作
if (isAndroid) {
// do android only here
} else {
// ios
}