• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
16function foo(left: number = 0, right: number): number {
17  return left + right
18}
19
20function foo3(a: number, b: number = 5, c: number): number {
21  return a + b + c;
22}
23
24function foo4(a: number = 1, b: number = 2, c: number): number {
25  return a + b + c;
26}
27
28function foo5(a: number = 1, b: number = 2, c: number = 3): number { //legal
29  return a + b + c;
30}
31
32const bar = (x: boolean = true, y: boolean) => {
33  return x && y;
34};
35
36class MyClass {
37  myMethod(x: number = 0, y: number) {
38    return x + y;
39  }
40}
41
42function fooLegal(a: number, b: number = 0): number { //legal
43  return a + b;
44}
45
46function greetLegal(name: string, message: string = "Hi"): string { //legal
47  return message + ", " + name;
48}
49
50const barLegal = (x: boolean, y: boolean = false) => { //legal
51  return x && y;
52};
53
54function log(level: string = 'info', some: string, message?: string): void {
55  console.log(`${some} [${level.toUpperCase()}] ${message ?? 'No message'}`);
56}
57
58function config(debug: boolean = true, verbose?: boolean): string { //legal
59  return `Debug: ${debug ?? false}, Verbose: ${verbose ?? false}`;
60}
61
62export class DefaultArgsA {
63  readonly left: number;
64  readonly right: number;
65  constructor(left: number = 0.0, right: number) { // 漏扫
66    this.left = left;
67    this.right = right;
68  }
69
70  defaultArgsFoo1(left: number = 0.0, right: number): number {
71    return left + right;
72  }
73}