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}