1/* 2 * Copyright (c) 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 16enum Color { Red, Green, Blue } 17 18enum ColorB { 19 A = Color.Red, 20 B = Color.Green 21} 22enum ColorC { 23 C = Color.Green, 24 D 25} 26enum ColorD { 27 E = Color.Red, 28 F = 1 29} 30enum ColorE { 31 G = Color.Red | 1 32} 33enum ColorF { 34 H = Color.Red | 1, 35 I 36} 37enum ColorG { 38 Red = "O", 39 Green = "O" 40} 41enum ColorH { 42 J = ColorG.Green, 43 K = "O" 44} 45enum ColorI { 46 L = ColorH.J 47} 48enum Colorj { 49 M = Color.Red + Color.Green 50} 51 52class A { 53 Red: number = 1 54} 55const AInstance = new A(); 56enum ColorA { 57 A = /* @@ label */AInstance.Red 58} 59 60function main(): void { 61 const red = Color.Red; 62 switch (Color.Green) { 63 case Color.Blue: break; 64 case /* @@ label1 */red: break; 65 case Color.Green: break; 66 } 67} 68 69/* @@@ label Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ 70/* @@@ label1 Error TypeError: Enum switch case must be unqualified name of an enum constant */ 71