我按照官方安装文档,安装了SDK,并且按照VS code提示,对于require,执行了npm i @types/node。但是使用ionic serve编译不通过,我尝试了ionic 3 和4,都是编译错误,错误信息附在了图片里( const REPL_MODE_SLOPPY: unique symbol;),麻烦有人知道怎么成功编译吗?

这个看起来不像是 leancloud-storage 包里的东西呀。您先试试把 leancloud-storage 等 leancloud 相关包去掉,看看能不能跑起来。

我重新在ionic 4下尝试官方文档,这回把var AV =....换成import * as AV from 'leancloud-storage';这样就能通过编译了。但是同样办法在ionic 3下就会报错,而我的代码都是ionic 3写的。报错信息这回和leancloud有关,下面是VS code提示代码。
[app-scripts] [07:48:55] typescript: node_modules/leancloud-realtime/realtime.d.ts, line: 552
[app-scripts] ';' expected.
[app-scripts] L552: declare type EventContext = K extends keyof OptionalContext
[app-scripts] L553: ? OptionalContext[K]
[app-scripts] [07:48:55] typescript: node_modules/leancloud-realtime/realtime.d.ts, line: 552
[app-scripts] ';' expected.
[app-scripts] L552: declare type EventContext = K extends keyof OptionalContext
[app-scripts] L553: ? OptionalContext[K]
[app-scripts] [07:48:55] typescript: node_modules/leancloud-realtime/realtime.d.ts, line: 93
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L92: listener: (payload?: ClientEvent[K]) => any,
[app-scripts] L93: ...context: EventContext
[app-scripts] L94: ): this;
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L99: conversaion?: ConversationBase,
[app-scripts] L100: ...context: EventContext
[app-scripts] L101: ) => any
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L104: event: K,
[app-scripts] L105: listener: (payload?: ClientEvent[K], ...context: EventContext) => any
[app-scripts] L106: ): this;
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L111: conversaion?: ConversationBase,
[app-scripts] L112: ...context: EventContext
[app-scripts] L113: ) => any
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L359: listener: (payload?: T[K]) => any,
[app-scripts] L360: ...context: EventContext
[app-scripts] L361: ): this;
[app-scripts] A rest parameter must be of an array type.
[app-scripts] L365: listener: (payload?: T[K]) => any,
[app-scripts] L366: ...context: EventContext
[app-scripts] L367: ): this;

ionic 3 也应该用 import 方式(ESM)导入,可以试试 import AV from 'leancloud-storage'。如果还有问题请提供完整的引入模块和 SDK 初始化部分的代码。

非常感谢您的回答,ionic 3代码中,只要我在app.component.ts中加入import AV from 'leancloud-storage';或者import * as AV from 'leancloud-storage';就会有上面的错误提示。引入SDK也是遵循官方的npm文档引入的,实在不知道哪里有问题。

ionic 3 依赖 typescript 2.x,ionic 4 依赖 typescript 3.x,新版的 leancloud-realtime 用的是 typescript 3.x,所以 ionic 4 没问题,ionic 3 会报错。

建议使用 ionic 4 搭配最新版的 leancloud-realtime

也可以尝试 ionic 3 搭配 4.2.1 版本的 leancloud-realtime,这个是最后一个支持 typescript 2.x 的版本。

这回明白了,非常感谢。