我有一个特定于iOS的代码(类定义),并希望包含在单独的ios特定文件中。
所以我创建了两个文件
utils2.ios.ts< - 在这里添加了我的代码
utils2.android.ts
然后从另一个文件中,我做了:
import utils2 = require(“./ utils2”);
但是我收到一条错误消息,指出找不到该模块。
我必须走这条路,因为我有一个类定义 代码,如果我只有一个文件,我在Android上会遇到运行时错误。
打字稿是否支持平台特定文件?
或者另一种选择 - 在ts文件中可能是这样的
这样做
与C preprocesser相似
答案 0 :(得分:2)
你可以只使用一个utils.ts文件,在其中你可以做你提到的平台特定逻辑。您关于module not found
的问题可能只是该模块的路径问题,而不是该模块实际上并不存在。另请注意,Typescript并不真正“支持”特定于平台的文件。 Nativescript接受.android.ts
和.ios.ts
个文件,并在运行时加载运行平台所需的文件。所以,仅仅是与TS无关的FYI:)
Nativescript在platform
中提供了tns-core-modules
模块。从代码中的平台模块导入{ isAndroid }
或{ isIOS }
,并将其用作
if (isAndroid) {
// do android only here
} else {
// ios
}