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_ciimport {OhosInterface} from './oh_modules/ohos_lib' 163af6ab5fSopenharmony_ci// #14071 173af6ab5fSopenharmony_ciclass A { 183af6ab5fSopenharmony_ci v: string = ''; 193af6ab5fSopenharmony_ci} 203af6ab5fSopenharmony_cifunction SetProperty<T extends Object>(oldObj: T, str: string, obj: Object): void { 213af6ab5fSopenharmony_ci oldObj[str] = obj; // Should report error 223af6ab5fSopenharmony_ci} 233af6ab5fSopenharmony_cifunction GetProperty<T extends Object, U>(oldObj: T, str: string): U { 243af6ab5fSopenharmony_ci return oldObj[str]; // Should report error 253af6ab5fSopenharmony_ci} 263af6ab5fSopenharmony_cifunction test() { 273af6ab5fSopenharmony_ci let a: A = { v: 'abc' }; 283af6ab5fSopenharmony_ci SetProperty(a, 'u', 'def'); 293af6ab5fSopenharmony_ci return GetProperty<A, string>(a, 'v') + GetProperty<A, string>(a, 'u'); 303af6ab5fSopenharmony_ci} 313af6ab5fSopenharmony_ci 323af6ab5fSopenharmony_cilet ar1 = [1, 2, 3, 4]; 333af6ab5fSopenharmony_cilet ar2 = [1, '2', 3, 4]; 343af6ab5fSopenharmony_cilet ar3: number[] = []; 353af6ab5fSopenharmony_ci 363af6ab5fSopenharmony_ciar1[2]; 373af6ab5fSopenharmony_ciar2[2]; 383af6ab5fSopenharmony_ciar3[2]; 393af6ab5fSopenharmony_ci 403af6ab5fSopenharmony_ciconst r0 = [1, 2, 3][1]; 413af6ab5fSopenharmony_cilet r1 = [1, 2, 3, 4][0] 423af6ab5fSopenharmony_cilet r2 = [1, '2', 3, 4][0] 433af6ab5fSopenharmony_ci 443af6ab5fSopenharmony_cifunction fobject1(o: object) { 453af6ab5fSopenharmony_ci o['j'] 463af6ab5fSopenharmony_ci} 473af6ab5fSopenharmony_ci 483af6ab5fSopenharmony_cifunction fobject2(o: Object) { 493af6ab5fSopenharmony_ci o['k'] 503af6ab5fSopenharmony_ci} 513af6ab5fSopenharmony_ci 523af6ab5fSopenharmony_cilet array1 = [0,1] 533af6ab5fSopenharmony_cilet array2 = [1,2,3,4,5] 543af6ab5fSopenharmony_cilet array3: number[] = [1,2,3,4,5] 553af6ab5fSopenharmony_cilet array4: Array<number> = [1,2,3,4,5] 563af6ab5fSopenharmony_cilet array5 = new Array(10) 573af6ab5fSopenharmony_cilet array6 = new Int8Array(10) 583af6ab5fSopenharmony_cilet array7 = new Uint8Array(10) 593af6ab5fSopenharmony_cilet array8 = new Uint8ClampedArray(10) 603af6ab5fSopenharmony_cilet array9 = new Int16Array(10) 613af6ab5fSopenharmony_cilet array10 = new Uint16Array(10) 623af6ab5fSopenharmony_cilet array11 = new Int32Array(10) 633af6ab5fSopenharmony_cilet array12 = new Uint32Array(10) 643af6ab5fSopenharmony_cilet array13 = new Float32Array(10) 653af6ab5fSopenharmony_cilet array14 = new Float64Array(10) 663af6ab5fSopenharmony_cilet array15 = new BigInt64Array(10) 673af6ab5fSopenharmony_cilet array16 = new BigUint64Array(10) 683af6ab5fSopenharmony_ci 693af6ab5fSopenharmony_ciarray1[0]; 703af6ab5fSopenharmony_ciarray2[0]; 713af6ab5fSopenharmony_ciarray3[0]; 723af6ab5fSopenharmony_ciarray4[0]; 733af6ab5fSopenharmony_ciarray5[0]; 743af6ab5fSopenharmony_ciarray6[0]; 753af6ab5fSopenharmony_ciarray7[0]; 763af6ab5fSopenharmony_ciarray8[0]; 773af6ab5fSopenharmony_ciarray9[0]; 783af6ab5fSopenharmony_ciarray10[0]; 793af6ab5fSopenharmony_ciarray11[0]; 803af6ab5fSopenharmony_ciarray12[0]; 813af6ab5fSopenharmony_ciarray13[0]; 823af6ab5fSopenharmony_ciarray14[0]; 833af6ab5fSopenharmony_ciarray15[0]; 843af6ab5fSopenharmony_ciarray16[0]; 853af6ab5fSopenharmony_ci 863af6ab5fSopenharmony_cifunction fff1(r: Record<string, number>) { 873af6ab5fSopenharmony_ci r['bob'] 883af6ab5fSopenharmony_ci} 893af6ab5fSopenharmony_ci 903af6ab5fSopenharmony_cienum CCCCCCCCC { 913af6ab5fSopenharmony_ci KATE, 923af6ab5fSopenharmony_ci BOB, 933af6ab5fSopenharmony_ci ROB, 943af6ab5fSopenharmony_ci} 953af6ab5fSopenharmony_ci 963af6ab5fSopenharmony_ciCCCCCCCCC['KATE'] 973af6ab5fSopenharmony_ciCCCCCCCCC['BOB'] 983af6ab5fSopenharmony_ciCCCCCCCCC['ROB'] 993af6ab5fSopenharmony_ci 1003af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.KATE] 1013af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.BOB] 1023af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.ROB] 1033af6ab5fSopenharmony_ci 1043af6ab5fSopenharmony_cilet arr32 = new Float32Array([1,2,3]) 1053af6ab5fSopenharmony_ci 1063af6ab5fSopenharmony_cilet iter_arr32 = arr32[Symbol.iterator]() 1073af6ab5fSopenharmony_cilet tmp_arr32 = iter_arr32.next().value; 1083af6ab5fSopenharmony_ciwhile (!!tmp_arr32) { 1093af6ab5fSopenharmony_ci console.log(tmp_arr32[0]) 1103af6ab5fSopenharmony_ci 1113af6ab5fSopenharmony_ci tmp_arr32 = iter_arr32.next().value 1123af6ab5fSopenharmony_ci} 1133af6ab5fSopenharmony_ci 1143af6ab5fSopenharmony_cilet arr = new Array<string>() 1153af6ab5fSopenharmony_ciarr = ['a','f','g'] 1163af6ab5fSopenharmony_cilet iter_arr = arr[Symbol.iterator]() 1173af6ab5fSopenharmony_cilet tmp_arr = iter_arr.next().value; 1183af6ab5fSopenharmony_ciwhile (!!tmp_arr) { 1193af6ab5fSopenharmony_ci console.log(tmp_arr[0]) 1203af6ab5fSopenharmony_ci tmp_arr = iter_arr.next().value 1213af6ab5fSopenharmony_ci} 1223af6ab5fSopenharmony_ci 1233af6ab5fSopenharmony_ci// #14415 1243af6ab5fSopenharmony_ciclass ArrayContainer { 1253af6ab5fSopenharmony_ci numbers: number[] = []; 1263af6ab5fSopenharmony_ci} 1273af6ab5fSopenharmony_ciclass NullableArray { 1283af6ab5fSopenharmony_ci container: ArrayContainer | null = null; 1293af6ab5fSopenharmony_ci 1303af6ab5fSopenharmony_ci print() { 1313af6ab5fSopenharmony_ci console.log(this.container?.numbers[0]); 1323af6ab5fSopenharmony_ci } 1333af6ab5fSopenharmony_ci} 1343af6ab5fSopenharmony_ci 1353af6ab5fSopenharmony_cilet str1 = 'sssss' 1363af6ab5fSopenharmony_cilet str2 = "aaaaa" 1373af6ab5fSopenharmony_cilet str3 = `sssss` 1383af6ab5fSopenharmony_cilet str4 = new String('sssss') 1393af6ab5fSopenharmony_cilet str5 = str1 1403af6ab5fSopenharmony_cilet str6 = str2 1413af6ab5fSopenharmony_ci 1423af6ab5fSopenharmony_cistr1[1] 1433af6ab5fSopenharmony_cistr2[1] 1443af6ab5fSopenharmony_cistr3[1] 1453af6ab5fSopenharmony_cistr4[1] 1463af6ab5fSopenharmony_cistr5[1] 1473af6ab5fSopenharmony_cistr6[1] 1483af6ab5fSopenharmony_ci 1493af6ab5fSopenharmony_ciclass AString extends String {} 1503af6ab5fSopenharmony_cilet str7 = new AString('dwdd') 1513af6ab5fSopenharmony_cistr7[1] 1523af6ab5fSopenharmony_ci 1533af6ab5fSopenharmony_citype IndexableUnion = string[] | (number | string)[] | Uint8Array; 1543af6ab5fSopenharmony_citype NonIndexableUnion = string[] | number[] | Uint8Array | number; 1553af6ab5fSopenharmony_ci 1563af6ab5fSopenharmony_cifunction indexUnion(iu: IndexableUnion, niu: NonIndexableUnion) { 1573af6ab5fSopenharmony_ci iu[0]; 1583af6ab5fSopenharmony_ci niu[0]; 1593af6ab5fSopenharmony_ci} 1603af6ab5fSopenharmony_ci 1613af6ab5fSopenharmony_cifunction testLibraryUnnamedType(a: OhosInterface) { 1623af6ab5fSopenharmony_ci a['kek']; 1633af6ab5fSopenharmony_ci} 1643af6ab5fSopenharmony_ci 1653af6ab5fSopenharmony_ciclass MMap<T, U> extends Map<T, U> {} 1663af6ab5fSopenharmony_ci 1673af6ab5fSopenharmony_cilet mmap1 = new Map<number, string>(); 1683af6ab5fSopenharmony_cilet mmap2 = new Map<string, number>(); 1693af6ab5fSopenharmony_cilet mmap3 = new MMap<string, string>(); 1703af6ab5fSopenharmony_ci 1713af6ab5fSopenharmony_cimmap1[1]; 1723af6ab5fSopenharmony_cimmap2['222']; 1733af6ab5fSopenharmony_cimmap3["kkr"]; 174