18c339a94Sopenharmony_ci/* 28c339a94Sopenharmony_ci* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. 38c339a94Sopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License"); 48c339a94Sopenharmony_ci* you may not use this file except in compliance with the License. 58c339a94Sopenharmony_ci* You may obtain a copy of the License at 68c339a94Sopenharmony_ci* 78c339a94Sopenharmony_ci* http://www.apache.org/licenses/LICENSE-2.0 88c339a94Sopenharmony_ci* 98c339a94Sopenharmony_ci* Unless required by applicable law or agreed to in writing, software 108c339a94Sopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS, 118c339a94Sopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128c339a94Sopenharmony_ci* See the License for the specific language governing permissions and 138c339a94Sopenharmony_ci* limitations under the License. 148c339a94Sopenharmony_ci*/ 158c339a94Sopenharmony_ciimport { AsyncCallback, Callback } from './../basic'; 168c339a94Sopenharmony_ci 178c339a94Sopenharmony_cideclare namespace napitest { 188c339a94Sopenharmony_ci interface Human { 198c339a94Sopenharmony_ci name: string; 208c339a94Sopenharmony_ci age: number; 218c339a94Sopenharmony_ci } 228c339a94Sopenharmony_ci 238c339a94Sopenharmony_ci // 变换括号位置 248c339a94Sopenharmony_ci interface Man 258c339a94Sopenharmony_ci { 268c339a94Sopenharmony_ci name: string; 278c339a94Sopenharmony_ci age: number; 288c339a94Sopenharmony_ci } 298c339a94Sopenharmony_ci 308c339a94Sopenharmony_ci export enum LaunchReason { 318c339a94Sopenharmony_ci UNKNOWN = 0, 328c339a94Sopenharmony_ci START_ABILITY = 1, 338c339a94Sopenharmony_ci CALL = 2, 348c339a94Sopenharmony_ci CONTINUATION = 3, 358c339a94Sopenharmony_ci } 368c339a94Sopenharmony_ci 378c339a94Sopenharmony_ci class TestClass1 { 388c339a94Sopenharmony_ci ahuman: Human; 398c339a94Sopenharmony_ci fun1(v: number): number; 408c339a94Sopenharmony_ci fun2(numcc: Array<number>, mancc: Human): Human; 418c339a94Sopenharmony_ci fun3: (v: number, v1: string, v2: boolean) => boolean; 428c339a94Sopenharmony_ci fun4: (mancc: Map<string, string>,v?: string) => Array<number>; 438c339a94Sopenharmony_ci fun5: (data: Array<Human>) => Human; 448c339a94Sopenharmony_ci fun6: (v: string[], v1: { [key: string]: boolean }) => string[]; 458c339a94Sopenharmony_ci fun8: () => void; 468c339a94Sopenharmony_ci fun9(manA: Man): void; 478c339a94Sopenharmony_ci 488c339a94Sopenharmony_ci //参数为enum 498c339a94Sopenharmony_ci fun12(v: TestStatus): number; 508c339a94Sopenharmony_ci fun13(v: TestEnumString): number; 518c339a94Sopenharmony_ci fun16(v1: number, v2: string, v3: boolean); 528c339a94Sopenharmony_ci 538c339a94Sopenharmony_ci // return value is enum type of defined later 548c339a94Sopenharmony_ci // to support 558c339a94Sopenharmony_ci // fun14(v: string): ReturnStatus; 568c339a94Sopenharmony_ci // fun15(v: string): ReturnEnumString; 578c339a94Sopenharmony_ci 588c339a94Sopenharmony_ci /*fun7: (v: string, v1: LaunchReason) => LaunchReason; --待支持*/ 598c339a94Sopenharmony_ci } 608c339a94Sopenharmony_ci 618c339a94Sopenharmony_ci // 数值型枚举 628c339a94Sopenharmony_ci export enum TestStatus { 638c339a94Sopenharmony_ci UNKNOWN = 0, 648c339a94Sopenharmony_ci START_ABILITY = 1, 658c339a94Sopenharmony_ci CALL = 2, 668c339a94Sopenharmony_ci CONTINUATION = 3, 678c339a94Sopenharmony_ci } 688c339a94Sopenharmony_ci 698c339a94Sopenharmony_ci // 字符型枚举 708c339a94Sopenharmony_ci export enum TestEnumString { 718c339a94Sopenharmony_ci ACTION_HOME = 'ohos.want.action.home', 728c339a94Sopenharmony_ci ACTION_DIAL = 'ohos.want.action.dial', 738c339a94Sopenharmony_ci ACTION_SEARCH = 'ohos.want.action.search', 748c339a94Sopenharmony_ci ACTION_WIRELESS_SETTINGS = 'ohos.settings.wireless', 758c339a94Sopenharmony_ci } 768c339a94Sopenharmony_ci 778c339a94Sopenharmony_ci // 数值型枚举 788c339a94Sopenharmony_ci export enum ReturnStatus { 798c339a94Sopenharmony_ci UNKNOWN = 0, 808c339a94Sopenharmony_ci START_RETURN = 1, 818c339a94Sopenharmony_ci MIDDLE_RETURN = 2, 828c339a94Sopenharmony_ci END_RETURN = 3, 838c339a94Sopenharmony_ci } 848c339a94Sopenharmony_ci 858c339a94Sopenharmony_ci // 字符型枚举 868c339a94Sopenharmony_ci export enum ReturnEnumString { 878c339a94Sopenharmony_ci RETURN_HOME = 'ohos.want.return.home', 888c339a94Sopenharmony_ci RETURN_DIAL = 'ohos.want.return.dial', 898c339a94Sopenharmony_ci RETURN_SEARCH = 'ohos.want.return.search', 908c339a94Sopenharmony_ci RETURN_WIRELESS_SETTINGS = 'ohos.settings.return.wireless', 918c339a94Sopenharmony_ci } 928c339a94Sopenharmony_ci interface Test { 938c339a94Sopenharmony_ci aa: string; 948c339a94Sopenharmony_ci bb?: boolean; 958c339a94Sopenharmony_ci cc: number; 968c339a94Sopenharmony_ci dd?: string; 978c339a94Sopenharmony_ci ee?: number; 988c339a94Sopenharmony_ci /* ff?: any; --待支持*/ 998c339a94Sopenharmony_ci /* gg?: object; --待支持*/ 1008c339a94Sopenharmony_ci /* hh?: LaunchReason; --待支持*/ 1018c339a94Sopenharmony_ci } 1028c339a94Sopenharmony_ci 1038c339a94Sopenharmony_ci function func1 (v1: Test, v2?: number): string; 1048c339a94Sopenharmony_ci 1058c339a94Sopenharmony_ci interface ComplexTest { 1068c339a94Sopenharmony_ci a1: Map<string, number>; 1078c339a94Sopenharmony_ci b1?: Map<string, string>; 1088c339a94Sopenharmony_ci c1: Array<number>; 1098c339a94Sopenharmony_ci d1?: Array<string>; 1108c339a94Sopenharmony_ci e1?: number | string | boolean; 1118c339a94Sopenharmony_ci g1?: Test; 1128c339a94Sopenharmony_ci } 1138c339a94Sopenharmony_ci 1148c339a94Sopenharmony_ci function func2 (v: ComplexTest): string; 1158c339a94Sopenharmony_ci 1168c339a94Sopenharmony_ci interface testInterface { 1178c339a94Sopenharmony_ci a1: number; 1188c339a94Sopenharmony_ci b1?: string; 1198c339a94Sopenharmony_ci aa: boolean; 1208c339a94Sopenharmony_ci bb?: Array<number>; 1218c339a94Sopenharmony_ci cc?: Map<string, string>; 1228c339a94Sopenharmony_ci dd: Array<boolean>; 1238c339a94Sopenharmony_ci ee: Map<string, number>; 1248c339a94Sopenharmony_ci } 1258c339a94Sopenharmony_ci 1268c339a94Sopenharmony_ci interface testInterface22 { 1278c339a94Sopenharmony_ci test: testInterface; 1288c339a94Sopenharmony_ci } 1298c339a94Sopenharmony_ci 1308c339a94Sopenharmony_ci function func3(fp1: testInterface22): string; 1318c339a94Sopenharmony_ci 1328c339a94Sopenharmony_ci // interface定义在使用之后 begin 1338c339a94Sopenharmony_ci function func4(v: TestInterfaceLater): string; 1348c339a94Sopenharmony_ci 1358c339a94Sopenharmony_ci class TestInterfaceUse { 1368c339a94Sopenharmony_ci v0: string; 1378c339a94Sopenharmony_ci // v1: TestInterfaceLater; 1388c339a94Sopenharmony_ci funceUse(n0: TestInterfaceLater): string; 1398c339a94Sopenharmony_ci } 1408c339a94Sopenharmony_ci 1418c339a94Sopenharmony_ci class TestInterfaceLater { 1428c339a94Sopenharmony_ci v0: string; 1438c339a94Sopenharmony_ci v1: number; 1448c339a94Sopenharmony_ci funcLater(n0: number): string; 1458c339a94Sopenharmony_ci } 1468c339a94Sopenharmony_ci // interface定义在使用之后 end 1478c339a94Sopenharmony_ci} 1488c339a94Sopenharmony_ci 1498c339a94Sopenharmony_ciexport default napitest; 150