• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}