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