sendTextMessage method Null safety

Future<JMTextMessage> sendTextMessage(
  1. {@required dynamic type,
  2. @required String? text,
  3. JMMessageSendOptions? sendOption,
  4. Map? extras}
)

Implementation

Future<JMTextMessage> sendTextMessage({
  @required dynamic type,

  /// (JMSingle | JMGroup | JMChatRoom)
  @required String? text,
  JMMessageSendOptions? sendOption,
  Map<dynamic, dynamic>? extras,
}) async {
  Map param = type.toJson();
  Map optionMap = {};
  if (sendOption != null) {
    optionMap = {
      'messageSendingOptions': sendOption.toJson()
        ..removeWhere((key, value) => value == null)
    };
  }

  if (extras != null) {
    param..addAll({'extras': extras});
  }

  param..addAll(optionMap)..addAll({'text': text});

  Map resMap = await _channel.invokeMethod(
      'sendTextMessage', param..removeWhere((key, value) => value == null));
  var res = JMNormalMessage.generateMessageFromJson(resMap);
  return res;
}