我有一个特定于iOS的代码(类定义),并希望包含在一个单独的ios特定文件中。
所以我创建了两个文件
utils2.ios.ts <--在这里添加了我的代码
utils2.android.ts
然后从另一份文件中,我做到了:
导入utils2 =require(“./utils2 2”);
但是我收到一个错误消息,没有找到模块。
我不得不这样做,因为我在代码中有一个类定义,如果我只有一个文件,我会在Android上得到一个运行时错误。
类型记录支持平台特定的文件吗?
或者另一种选择--在ts文件中有可能出现这样的情况吗?
如果ios
执行此操作
结束
类似于C预处理器
发布于 2017-09-29 01:41:38
您可以只使用一个utils.ts文件并在其中执行您提到的特定于平台的逻辑。关于module not found的问题可能只是通向该模块的路径问题,而不是模块实际上不存在的问题。还请注意,类型记录并不真正“支持”特定于平台的文件。Nativescript获取这些.android.ts和.ios.ts文件,并在运行时加载运行平台上所需的文件。所以只是FYI --这与TS没有关系:)
Nativescript在platform中提供了一个tns-core-modules模块。从代码中的平台模块导入{ isAndroid }或{ isIOS },并将其用作
if (isAndroid) {
// do android only here
} else {
// ios
}https://stackoverflow.com/questions/46480337
复制相似问题