`max`的输出是多少

问题描述 投票:0回答:1

这个表情

max([1]) + 1

给予

Unable to call: `+` with arguments: (`1 | Null`, `1`).
 Reasons:
    - Expecting Type: `Number`, but got: `Null`.
        |-- From: `Number`  
        |- From: +(lhs: Number, rhs: Number) -> Number      
            50| max([1]) + 1
                ^^^^^^^^
    - Expecting Type: `Array<T>`, but got: `Null`.
        |-- From: `Array<T>`    
        |- From: +<T, E>(lhs: Array<T>, rhs: E) -> Array<T | E>     
            50| max([1]) + 1
                ^^^^^^^^
    - 10 more options ...

50| max([1]) + 1
    ^^^^^^^^^^^^

但是

typeOf(max([1]))
给出
Number
。如何获取 max 的结果作为可用于数字运算的数字?

functional-programming dataweave mulesoft
1个回答
0
投票

查看文档 max() 函数的返回类型是

T | Null
,这是一个 union 类型

max(@StreamCapable 值:数组):T |空

返回数组中最高的可比较值。

这些项必须属于同一类型,否则函数会抛出错误。如果数组为空,该函数返回 null。

加法运算符 (

+
) 期望数字作为两个参数,而不是其中一个是联合类型。

要使用

max()
的结果,您应该确保它实际上不能为空。一种方法是将结果转换为
Number
。 A
Null
无法转换为
Number
,因此请注意,如果列表为空,转换将会失败。

示例:

max([1]) as Number + 1
© www.soinside.com 2019 - 2024. All rights reserved.