1/* 2 * Copyright (c) 2023-2024 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 foo(x : number, y : number, z : number) { 17 console.log(x, y, z) 18} 19 20let args : [number, number, number] = [0, 1, 2] 21foo(...args) 22 23let list1 = [1, 2] 24let list2 = [...list1, 3, 4] 25 26let point2d = {x: 1, y: 2} 27let point3d = {...point2d, z: 3} 28 29 30 31 32function sum_numbers(...numbers: number[]): number { 33 let res = 0 34 for (let n of numbers) 35 res += n 36 return res 37} 38console.log(sum_numbers(1, 2, 3)) 39 40function log_numbers(x : number, y : number, z : number) { 41 console.log(x, y, z) 42} 43let numbers: number[] = [1, 2, 3] 44log_numbers(numbers[0], numbers[1], numbers[2]) 45 46let list3 : number[] = [1, 2] 47let list4 : number[] = [list1[0], list1[1], 3, 4] 48 49class Point2D { 50 x: number = 0; y: number = 0 51} 52 53class Point3D { 54 x: number = 0; y: number = 0; z: number = 0 55 constructor(p2d: Point2D, z: number) { 56 this.x = p2d.x 57 this.y = p2d.y 58 this.z = z 59 } 60} 61 62let p3d = new Point3D({x: 1, y: 2} as Point2D, 3) 63console.log(p3d.x, p3d.y, p3d.z) 64 65class DerivedFromArray extends Uint16Array { 66}; 67 68let arr1 = [1, 2, 3]; 69let arr2 = new Uint16Array([4, 5, 6]); 70let arr3 = new DerivedFromArray([7, 8, 9]) 71 72let arr4 = [...arr1, 10, ...arr2, 11, ...arr3] 73