13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_cifunction foo(x : number, y : number, z : number) {
173af6ab5fSopenharmony_ci    console.log(x, y, z)
183af6ab5fSopenharmony_ci}
193af6ab5fSopenharmony_ci
203af6ab5fSopenharmony_cilet args : [number, number, number] = [0, 1, 2]
213af6ab5fSopenharmony_cifoo(...args)
223af6ab5fSopenharmony_ci
233af6ab5fSopenharmony_cilet list1 = [1, 2]
243af6ab5fSopenharmony_cilet list2 = [...list1, 3, 4]
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_cilet point2d = {x: 1, y: 2}
273af6ab5fSopenharmony_cilet point3d = {...point2d, z: 3}
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci
323af6ab5fSopenharmony_cifunction sum_numbers(...numbers: number[]): number {
333af6ab5fSopenharmony_ci    let res = 0
343af6ab5fSopenharmony_ci    for (let n of numbers)
353af6ab5fSopenharmony_ci        res += n
363af6ab5fSopenharmony_ci    return res
373af6ab5fSopenharmony_ci}
383af6ab5fSopenharmony_ciconsole.log(sum_numbers(1, 2, 3))
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_cifunction log_numbers(x : number, y : number, z : number) {
413af6ab5fSopenharmony_ci    console.log(x, y, z)
423af6ab5fSopenharmony_ci}
433af6ab5fSopenharmony_cilet numbers: number[] = [1, 2, 3]
443af6ab5fSopenharmony_cilog_numbers(numbers[0], numbers[1], numbers[2])
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_cilet list3 : number[] = [1, 2]
473af6ab5fSopenharmony_cilet list4 : number[] = [list1[0], list1[1], 3, 4]
483af6ab5fSopenharmony_ci
493af6ab5fSopenharmony_ciclass Point2D {
503af6ab5fSopenharmony_ci    x: number = 0; y: number = 0
513af6ab5fSopenharmony_ci}
523af6ab5fSopenharmony_ci
533af6ab5fSopenharmony_ciclass Point3D {
543af6ab5fSopenharmony_ci    x: number = 0; y: number = 0; z: number = 0
553af6ab5fSopenharmony_ci    constructor(p2d: Point2D, z: number) {
563af6ab5fSopenharmony_ci        this.x = p2d.x
573af6ab5fSopenharmony_ci        this.y = p2d.y
583af6ab5fSopenharmony_ci        this.z = z
593af6ab5fSopenharmony_ci    }
603af6ab5fSopenharmony_ci}
613af6ab5fSopenharmony_ci
623af6ab5fSopenharmony_cilet p3d = new Point3D({x: 1, y: 2} as Point2D, 3)
633af6ab5fSopenharmony_ciconsole.log(p3d.x, p3d.y, p3d.z)
643af6ab5fSopenharmony_ci
653af6ab5fSopenharmony_ciclass DerivedFromArray extends Uint16Array {
663af6ab5fSopenharmony_ci};
673af6ab5fSopenharmony_ci
683af6ab5fSopenharmony_cilet arr1 = [1, 2, 3];
693af6ab5fSopenharmony_cilet arr2 = new Uint16Array([4, 5, 6]);
703af6ab5fSopenharmony_cilet arr3 = new DerivedFromArray([7, 8, 9])
713af6ab5fSopenharmony_ci
723af6ab5fSopenharmony_cilet arr4 = [...arr1, 10, ...arr2, 11, ...arr3]
73