1/*
2 * Copyright (c) 2022 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
16declare function print(str:any):string;
17var foo = {
18    bar: [ "a", "b" ]
19  };
20print(foo.bar[0]);
21print(foo.bar[1]);
22
23interface objInterface {
24    [key: string]: any
25}
26let obj:objInterface = {};
27obj.a = 100;
28obj.b = "helloworld";
29print(obj.a)
30print(obj.b);
31
32function ArkFunc(depth: number, tag: string): {
33    array: number[],
34    string: string
35} | {
36    left: object,
37    right: object
38} {
39    if (depth == 0) {
40        return {
41            array: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
42            string: 'Ark ' + tag + ' Departure!'
43        };
44    } else {
45        return {
46            left: ArkFunc(depth - 1, tag),
47            right: ArkFunc(depth - 1, tag)
48        };
49    }
50}
51
52var arkDepth: number = 5;
53var arkTag: number = 18;
54var arkResult = ArkFunc(arkDepth, String(arkTag));