From e67c7d1b01ee0919c9d9ebcb1501fd62b4f01899 Mon Sep 17 00:00:00 2001 From: Dunqing <29533304+Dunqing@users.noreply.github.com> Date: Mon, 8 Jul 2024 06:51:28 +0000 Subject: [PATCH] fix(isolated-declarations): do not infer type for private parameters (#4105) close: #4033 --- crates/oxc_isolated_declarations/src/class.rs | 8 ++++++-- .../oxc_isolated_declarations/tests/snapshots/class.snap | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/crates/oxc_isolated_declarations/src/class.rs b/crates/oxc_isolated_declarations/src/class.rs index 6d953758f..bb38254fd 100644 --- a/crates/oxc_isolated_declarations/src/class.rs +++ b/crates/oxc_isolated_declarations/src/class.rs @@ -241,8 +241,12 @@ impl<'a> IsolatedDeclarations<'a> { let mut elements = self.ast.new_vec(); for (index, param) in function.params.items.iter().enumerate() { if param.accessibility.is_some() || param.readonly { - // transformed params will definitely have type annotation - let type_annotation = self.ast.copy(¶ms.items[index].pattern.type_annotation); + let type_annotation = if param.accessibility.is_some_and(|a| a.is_private()) { + None + } else { + // transformed params will definitely have type annotation + self.ast.copy(¶ms.items[index].pattern.type_annotation) + }; if let Some(new_element) = self.transform_formal_parameter_to_class_property(param, type_annotation) { diff --git a/crates/oxc_isolated_declarations/tests/snapshots/class.snap b/crates/oxc_isolated_declarations/tests/snapshots/class.snap index 2101b8b65..7baebea6d 100644 --- a/crates/oxc_isolated_declarations/tests/snapshots/class.snap +++ b/crates/oxc_isolated_declarations/tests/snapshots/class.snap @@ -29,7 +29,7 @@ export declare class Baz { } export declare class Boo { readonly prop: number; - private readonly prop2: number; + private readonly prop2; readonly prop3: number; constructor(prop?: number, prop2?: number, prop3?: number); }