1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 17declare function AssertType(value: any, type: string): void; 18declare function print(arg0: any, arg?: any): string; 19 20const target = "ts"; 21let extensions: string[] = ["js", "ts", "ets"]; 22 23for (let i = 0; i < extensions.length; i++) { 24 AssertType(extensions[i], "string"); 25} 26 27class FileItem { 28 ext:string; 29 constructor(extension: string) { 30 this.ext = extension; 31 } 32} 33 34function reportFail() { 35 print("Failed to find target.") 36} 37 38function createFile(ext: string) { 39 let f = new FileItem(ext); 40 AssertType(f, "FileItem"); 41 print("Create file item successfully!"); 42} 43 44let foundExt:string = extensions.find((u) => u == target); 45 46if (!foundExt) { 47 AssertType(foundExt, "string"); 48 reportFail(); 49} else { 50 createFile(foundExt); 51} 52