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 interface GrandFar extends Human{ 248c339a94Sopenharmony_ci eyesType: number; 258c339a94Sopenharmony_ci getSkin(v: number): string; 268c339a94Sopenharmony_ci getSkinSync(v: number, skin: Callback<string>): void; 278c339a94Sopenharmony_ci getSkinAsync(v: number, skin: AsyncCallback<string>): void; 288c339a94Sopenharmony_ci } 298c339a94Sopenharmony_ci 308c339a94Sopenharmony_ci interface Farther extends GrandFar { 318c339a94Sopenharmony_ci getShoes(): string; 328c339a94Sopenharmony_ci getShoesSync(shoes: Callback<string>): void; 338c339a94Sopenharmony_ci getShoesAsync(shoes: AsyncCallback<string>): void; 348c339a94Sopenharmony_ci } 358c339a94Sopenharmony_ci 368c339a94Sopenharmony_ci class Animal { 378c339a94Sopenharmony_ci aniName: string; 388c339a94Sopenharmony_ci size: number; 398c339a94Sopenharmony_ci static getAnimalType(aniId: number): string; 408c339a94Sopenharmony_ci setAnimalId(id: number): void; 418c339a94Sopenharmony_ci } 428c339a94Sopenharmony_ci 438c339a94Sopenharmony_ci class Cat extends Animal { 448c339a94Sopenharmony_ci catName:string; 458c339a94Sopenharmony_ci static getCatType(catId: number): string; 468c339a94Sopenharmony_ci } 478c339a94Sopenharmony_ci 488c339a94Sopenharmony_ci interface SuperAnimal { 498c339a94Sopenharmony_ci aniName: string; 508c339a94Sopenharmony_ci size: number; 518c339a94Sopenharmony_ci setAnimalId(id: number): void; 528c339a94Sopenharmony_ci } 538c339a94Sopenharmony_ci 548c339a94Sopenharmony_ci class SuperHuman { 558c339a94Sopenharmony_ci name: string; 568c339a94Sopenharmony_ci age: number; 578c339a94Sopenharmony_ci static getAnimalType(aniId: number): string; 588c339a94Sopenharmony_ci } 598c339a94Sopenharmony_ci 608c339a94Sopenharmony_ci interface Bob extends Human, Animal { 618c339a94Sopenharmony_ci bobSkill: string; 628c339a94Sopenharmony_ci getBobCardId(): number; 638c339a94Sopenharmony_ci } 648c339a94Sopenharmony_ci 658c339a94Sopenharmony_ci class Juliya extends SuperHuman implements SuperAnimal { 668c339a94Sopenharmony_ci aniName: string; 678c339a94Sopenharmony_ci size: number; 688c339a94Sopenharmony_ci setAnimalId(id: number): void; 698c339a94Sopenharmony_ci juliyaSkill: string; 708c339a94Sopenharmony_ci getJuliyaCardId(): number; 718c339a94Sopenharmony_ci } 728c339a94Sopenharmony_ci 738c339a94Sopenharmony_ci function findJuliya(v1: Juliya): Juliya; 748c339a94Sopenharmony_ci function findJuliyaSync(v1: string, callback: Callback<Juliya>): void; 758c339a94Sopenharmony_ci function findJuliyaAsync(v1: string, callback: AsyncCallback<Juliya>): void; 768c339a94Sopenharmony_ci 778c339a94Sopenharmony_ci interface Tom { 788c339a94Sopenharmony_ci name: string; 798c339a94Sopenharmony_ci friends: Cat; 808c339a94Sopenharmony_ci } 818c339a94Sopenharmony_ci 828c339a94Sopenharmony_ci interface TestMember { 838c339a94Sopenharmony_ci getTomcat(v1: string, v2: Array<Tom>): Tom; 848c339a94Sopenharmony_ci } 858c339a94Sopenharmony_ci} 868c339a94Sopenharmony_ci 878c339a94Sopenharmony_ciexport default napitest; 88