1/* 2 * Copyright (c) 2023-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 16class A { 17 constructor( 18 public readonly x: number, 19 protected y: number, 20 private z: number 21 ) {} 22 23 foo(): void { 24 console.log(this.x + this.y + this.z); 25 } 26} 27 28const a = new A(1, 2, 3); 29console.log(a.x); 30 31class B { 32 public f: number = 10; 33 34 constructor(q: number, public w = 'default', e: boolean, private readonly r: number[] = [1, 2, 3]) { 35 console.log(q, this.w, e, this.r, this.f); 36 } 37} 38 39const b = new B(1, '2', true, []); 40console.log(b.w); 41 42class C { 43 constructor(public a: any) {} // not fixable 44} 45 46class D { 47 constructor(public a: number, private b: {x: string}) {} // not fixable 48}