1/* 2 * Copyright (c) 2022-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 16 17var [var1, var2] = [1, "foo", true]; 18var1 = 2; 19var2 = "bar"; 20 21var var3: number; 22var var4: boolean; 23var [var3, , var4] = [var1, , true]; 24 25var [var5 = 2] = ["foo"]; 26var var5: number | string; 27 28var [var6 = 1, var7 = "asd", var8 = true] = []; 29var var6: number; 30var var7: string; 31var var8: boolean; 32 33var [var9, [var10, , var11], ...var12] = [{ a: 6, b: "bar" }, [42, , "foo" + 2]]; 34var9 = { a: 5, b: "foo" }; 35var10 = var3; 36var11 = var7; 37var12 = []; 38 39var [var13 = [1, "foo"], [var14, var15] = [{}, true], ...var16] = [3, [true, {}], function (a: any, b: any): number { return 12 }, "bar"]; 40var13 = 5; 41var13 = [2, "baz"]; 42var14 = {}; 43var14 = false; 44var15 = var14; 45var var16: [(a: any, b: any) => number, string]; 46 47var [var17, var18 = 6, var19]: [number, number | string, boolean[]] = [1, "foo", [true, false]]; 48var [var20, , var21]: number[] | [number, number, string] = []; 49var [var22, var23 = [{ a: 5, b: "foo" }, false], var24]: string[] | [number, ({ a: number, b: string } | boolean)[]] = [1, [{ a: 1, b: "bat" }, true]]; 50var [[var25, var26] = ["foo", {}], [[var27]]]: number[][][] | [[number | string, {}], [[number]]] = [[1, {}], [[3]]]; 51var [var28 = {}, { var29 }, ...var30]: [{}, { var29: number }, number, string] = [{}, { var29: 5 }, 1, "foo"]; 52 53var var31: number; 54var var32: boolean; 55 56[var31, var32] = [var31, true]; 57[var31, var31] = [5, 6]; 58[var31, var32] = [var31, true, false, 5]; 59 60var var33: number; 61var var34: boolean; 62 63[var33, var34] = [var31, var32]; 64 65var var35: string | number; 66 67[var35 = 2] = ["foo"]; 68 69var var36: number; 70var var37: string; 71var var38: boolean; 72[var36 = 1, var37 = "asd", var38 = true] = []; 73 74var var39 = {}; 75var var40 = var33; 76var var41 = var37; 77var var42 = []; 78[var39, [var40, , var41 = "bar"], ...var42] = [{}, [42, , "foo" + 2]]; 79[var39, [var40, , var41 = "bar"], ...var42] = [{}, [42, , "foo" + 2], 3, "baz", false]; 80 81[var39, [var40, , var41 = "bar"] = [45, , "baz"], ...var42] = [{}, [42, , "foo" + 2]]; 82 83var var43 = [45, , "baz"] as const; 84 85var var44 = "foo"; 86 87[var39, [var40, , var41 = "bar"] = var43, ...var42] = [{}, [42, , var44 + 2]]; 88 89var var45: string[]; 90var var46: number[]; 91var var47: (string | number)[]; 92var var48: string[]; 93 94[var45, var46, var47, var47, var47, ...var48] = [["foo", "bar"], [1, 2], ["foo", "bar"], [1, 2], [1, "foo"], "bar", "bar"] 95 96var var49: string[]; 97var var50: number[]; 98[[...var49], ...var50] = [["foo", "bar"], 1, 2] 99