/* * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Something, SomethingFactory, SomethingBar, Bar } from "./oh_modules/ohos_factory"; class C { static a = 5; static b = 8; } namespace H { export class G {} } let c = C; c = C; let g = H.G; g = H.G; let ca = C.a; let cb = C.b; let cc = new C(); let gg = new H.G(); function foo1(arg: typeof C) {} foo1(C); function foo2(arg: C) { return C; } function foo3(arg: typeof H.G) {} foo3(H.G); function foo4(arg: H.G) { return H.G; } class A {} interface B {} interface I {} class CC extends A implements I, B {} class D { constructor(arg: typeof C) {} } new D(C); type X = D; namespace test1 { class SomethingFoo extends Something { } namespace NS { export class SomethingFoo extends Something { } } let fact = SomethingFactory.getInstance(); let x1 = fact.create1(SomethingFoo).beep(); let x2 = fact.create1(SomethingBar).beep(); let x3 = fact.create1(NS.SomethingFoo).beep(); let x4 = fact.create2({ o: SomethingFoo }); let x5 = fact.create2({ o: SomethingBar }); let x6 = fact.create2({ o: NS.SomethingFoo }); let x7 = fact.create3(() => SomethingFoo); let x8 = fact.create4(() => SomethingFoo); let x9 = new Bar(SomethingFoo); } enum Color { WHITE, BLUE, RED }; let color: Color = Color.RED; for (let item = 0; item < Object.keys(Color).length; item++) { console.log(item); } foo2(() => C); export { C as H };