1/* 2 * Copyright (c) 2021-2025 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 16function main() { 17 let x0 : int | String | boolean = 2; 18 assertEQ((x0 as int) * 2, 4, "Error! Must be 4"); 19 x0 = -2; 20 assertEQ((x0 as int) * 3, -6, "Error! Must be -6"); 21 x0 = true 22 assertEQ((x0 as boolean), true, "Error! Must be true"); 23 x0 = "STR1" 24 assertTrue(((x0 as String) + "STR2").equals("STR1STR2"), "Error! Must be `STR1STR2`"); 25 let x1 : String | boolean = "AAA"; 26 if (x1 instanceof String) { 27 assertTrue((x1 as String).equals("AAA"), "Error! Must be `AAA`"); 28 } 29 let x2 : String | boolean | int | double = true; 30 assertEQ((x2 as boolean), true, "Error! Must be `true`"); 31 let x3 : String | boolean | int | double = 3.14; 32 // assertEQ((x3 as double), 3.14, "Error! Must be `3.14`" // #15576); 33 assertEQ((x3 as Double), 3.14, "Error! Must be `3.14`"); 34} 35 36