13af6ab5fSopenharmony_ci/* 23af6ab5fSopenharmony_ci * Copyright (c) 2022-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_ci 173af6ab5fSopenharmony_civar a: any; 183af6ab5fSopenharmony_civar a: any; 193af6ab5fSopenharmony_ci 203af6ab5fSopenharmony_civar b: number; 213af6ab5fSopenharmony_civar b: number; 223af6ab5fSopenharmony_ci 233af6ab5fSopenharmony_civar c: number | string; 243af6ab5fSopenharmony_civar c: string | number; 253af6ab5fSopenharmony_ci 263af6ab5fSopenharmony_civar d: { a: number, b: string }; 273af6ab5fSopenharmony_civar d: { b: string, a: number }; 283af6ab5fSopenharmony_ci 293af6ab5fSopenharmony_civar e: (a: number, b: (string | number)[]) => void; 303af6ab5fSopenharmony_civar e: (a: number, b: (string | number)[]) => void; 313af6ab5fSopenharmony_ci 323af6ab5fSopenharmony_civar f: { a: number, b: string } | { a: number[], b?: string }; 333af6ab5fSopenharmony_civar f: { a: number, b: string } | { a: number[], b?: string }; 343af6ab5fSopenharmony_ci 353af6ab5fSopenharmony_ciinterface interface1 { 363af6ab5fSopenharmony_ci a: number, 373af6ab5fSopenharmony_ci b: string, 383af6ab5fSopenharmony_ci} 393af6ab5fSopenharmony_ci 403af6ab5fSopenharmony_ciinterface interface2 { 413af6ab5fSopenharmony_ci a: number, 423af6ab5fSopenharmony_ci b: string, 433af6ab5fSopenharmony_ci} 443af6ab5fSopenharmony_ci 453af6ab5fSopenharmony_civar g: interface1; 463af6ab5fSopenharmony_civar g: interface2; 473af6ab5fSopenharmony_ci 483af6ab5fSopenharmony_ciinterface interface3 extends interface1 { 493af6ab5fSopenharmony_ci c: boolean, 503af6ab5fSopenharmony_ci} 513af6ab5fSopenharmony_ci 523af6ab5fSopenharmony_ciinterface interface4 extends interface2 { 533af6ab5fSopenharmony_ci c: boolean, 543af6ab5fSopenharmony_ci} 553af6ab5fSopenharmony_ci 563af6ab5fSopenharmony_civar h: interface3; 573af6ab5fSopenharmony_civar h: interface4; 583af6ab5fSopenharmony_ci 593af6ab5fSopenharmony_ciinterface interface5 { 603af6ab5fSopenharmony_ci (a: number, b: string): number, 613af6ab5fSopenharmony_ci (a: number, b: string): string, 623af6ab5fSopenharmony_ci new(a: number[], b: { a: number, b: string }): boolean, 633af6ab5fSopenharmony_ci new(a: number[], b: { a: number, b: string }): void, 643af6ab5fSopenharmony_ci} 653af6ab5fSopenharmony_ci 663af6ab5fSopenharmony_ciinterface interface6 { 673af6ab5fSopenharmony_ci (a: number, b: string): number, 683af6ab5fSopenharmony_ci (a: number, b: string): string, 693af6ab5fSopenharmony_ci new(a: number[], b: { a: number, b: string }): void, 703af6ab5fSopenharmony_ci new(a: number[], b: { a: number, b: string }): boolean, 713af6ab5fSopenharmony_ci} 723af6ab5fSopenharmony_ci 733af6ab5fSopenharmony_civar i: interface5; 743af6ab5fSopenharmony_civar i: interface6; 753af6ab5fSopenharmony_ci 763af6ab5fSopenharmony_civar j = function (a: interface6, b: number[]): number { 773af6ab5fSopenharmony_ci return 123; 783af6ab5fSopenharmony_ci} 793af6ab5fSopenharmony_civar j: (a: interface6, b: number[]) => number; 803af6ab5fSopenharmony_ci 813af6ab5fSopenharmony_civar obj = { a: 1, b: 2, c: 3 }; 823af6ab5fSopenharmony_civar k = { d: "foo", e: "bar", ...obj }; 833af6ab5fSopenharmony_civar k: { a: number, b: number, c: number, d: string, e: string }; 843af6ab5fSopenharmony_ci 853af6ab5fSopenharmony_cifunction func1(a: number, b: string): "foo" { 863af6ab5fSopenharmony_ci return "foo"; 873af6ab5fSopenharmony_ci} 883af6ab5fSopenharmony_cifunction func2(a: string, b: number): true { 893af6ab5fSopenharmony_ci return true; 903af6ab5fSopenharmony_ci} 913af6ab5fSopenharmony_civar l: typeof func1 | typeof func2; 923af6ab5fSopenharmony_civar l: ((a: number, b: string) => "foo") | ((a: string, b: number) => true) 933af6ab5fSopenharmony_ci 943af6ab5fSopenharmony_civar m: [a: number, b: string, c: boolean]; 953af6ab5fSopenharmony_civar m: [number, string, boolean]; 963af6ab5fSopenharmony_ci 973af6ab5fSopenharmony_civar n: number[] | [1, 2, 3]; 983af6ab5fSopenharmony_civar n: [1, 2, 3] | number[]; 993af6ab5fSopenharmony_ci 1003af6ab5fSopenharmony_ciinterface interface7 { 1013af6ab5fSopenharmony_ci a: number, 1023af6ab5fSopenharmony_ci} 1033af6ab5fSopenharmony_ci 1043af6ab5fSopenharmony_ciinterface interface8 extends interface7 { 1053af6ab5fSopenharmony_ci a: number, 1063af6ab5fSopenharmony_ci} 1073af6ab5fSopenharmony_ci 1083af6ab5fSopenharmony_ciinterface interface9 { 1093af6ab5fSopenharmony_ci a: number; 1103af6ab5fSopenharmony_ci} 1113af6ab5fSopenharmony_ci 1123af6ab5fSopenharmony_civar o: interface9; 1133af6ab5fSopenharmony_civar o: interface8; 1143af6ab5fSopenharmony_ci 1153af6ab5fSopenharmony_civar p: { a: number, b: string }; 1163af6ab5fSopenharmony_civar p: typeof p; 117