1/* 2 * Copyright (c) 2022-2024 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@Entry 16@Component 17struct Property_Observe_Validate { 18 build() { 19 20 } 21} 22 23@ObservedV2 24class ObservedV2_A { 25 name: string = "" 26 constructor(name: string) { 27 this.name = name 28 } 29} 30 31@Observed 32class Observed_B { 33 34} 35 36@ObservedV2 37class ObservedV2_C { 38 name: string = "" 39 constructor(name: string) { 40 this.name = name 41 } 42} 43 44@Observed 45class Observed_F { 46 value: boolean 47} 48 49namespace TestNameSpace { 50 @ObservedV2 51 export class ObservedV2_D { 52 53 } 54 @Observed 55 export class Observed_E { 56 value: number 57 } 58} 59 60type v2AliasType = ObservedV2_A 61type v2AliasType1 = ObservedV2_A | Observed_B 62type v2AliasType2 = ObservedV2_A | ObservedV2_C 63 64@Component 65struct TestV1Parent { 66 // build ok 67 regular_value: ObservedV2_A = new ObservedV2_A("hello") 68 @State state_value6: Observed_B = new Observed_B() 69 @State state_value7: Observed_B | Observed_F | TestNameSpace.Observed_E = new Observed_F() 70 71 @State state_value: ObservedV2_A = new ObservedV2_A("hello") 72 @State state_value1: TestNameSpace.ObservedV2_D = new TestNameSpace.ObservedV2_D() 73 @State state_value2: v2AliasType = new ObservedV2_A("hello") 74 @State state_value3: v2AliasType1 = new ObservedV2_A("hello") 75 @State state_value5: v2AliasType2 = new ObservedV2_C("hello") 76 @Prop prop_value: ObservedV2_A = new ObservedV2_A("hello") 77 @Link link_value: ObservedV2_A 78 @Provide provide_value: ObservedV2_A = new ObservedV2_A("hello") 79 @Consume consume_value: ObservedV2_A 80 @StorageLink("a") storage_link_value: ObservedV2_A = new ObservedV2_A("hello") 81 @StorageProp("b") storage_prop_value: ObservedV2_A = new ObservedV2_A("hello") 82 @LocalStorageLink("c") local_storage_link_value: ObservedV2_A = new ObservedV2_A("hello") 83 @LocalStorageProp("c") local_storage_prop_value: ObservedV2_A = new ObservedV2_A("hello") 84 85 build() { 86 87 } 88} 89 90type v1AliasType = Observed_B 91type v1AliasType1 = ObservedV2_A | Observed_B 92type v1AliasType2 = Observed_B | Observed_F 93 94@ComponentV2 95struct TestV2Parent { 96 // build ok 97 regular_value: Observed_B = new Observed_B(); 98 @Local local_value7: ObservedV2_A = new ObservedV2_A(""); 99 @Local local_value8: ObservedV2_A | ObservedV2_C | TestNameSpace.ObservedV2_D = new ObservedV2_A(""); 100 @Local local_value9: TestNameSpace.ObservedV2_D = new TestNameSpace.ObservedV2_D() 101 102 @Local local_value: Observed_B = new Observed_B() 103 @Local local_value1: v1AliasType = new Observed_B() 104 @Local local_value2: v1AliasType1 = new Observed_B() 105 @Local local_value3: v1AliasType2 = new Observed_F() 106 @Local local_value5: ObservedV2_A | Observed_B = new Observed_B() 107 @Local local_value6: TestNameSpace.Observed_E = new TestNameSpace.Observed_E() 108 @Param @Require param_value1: Observed_B = new Observed_B() 109 @Once @Param param_value2: Observed_B = new Observed_B() 110 @Param param_value3: Observed_B = new Observed_B() 111 @Event event_value: Observed_B = new Observed_B() 112 @Provider() provide_value: Observed_B = new Observed_B() 113 @Consumer() consumer_value: Observed_B = new Observed_B() 114 115 116 build() { 117 118 } 119}