1/* 2 * Copyright (c) 2025-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16function sum1(...p: (Int)[]): int { 17 let res = 0 18 for (let n: Int of p) res += n ?? 0 19 return res; 20} 21function sum2(...p: (Int | undefined)[]): int { 22 let res = 0 23 for (let n: Int | undefined of p) res += n ?? 0 24 return res; 25} 26function sum3(...p: (Int | null)[]): int { 27 let res = 0 28 for (let n: Int | null of p) res += n ?? 0 29 return res; 30} 31 32function main() { 33 assertEQ(6, sum1(1, 2, 3)) 34 assertEQ(3, sum2(1, 2, undefined)) 35 assertEQ(3, sum3(1, 2, null)) 36}