mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-03-15 14:05:47 -05:00
Exempt ambient private properties from noImplicitAny (#36640)
This commit is contained in:
@@ -29280,7 +29280,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function isPrivateWithinAmbient(node: Node): boolean {
|
||||
return hasModifier(node, ModifierFlags.Private) && !!(node.flags & NodeFlags.Ambient);
|
||||
return (hasModifier(node, ModifierFlags.Private) || isPrivateIdentifierPropertyDeclaration(node)) && !!(node.flags & NodeFlags.Ambient);
|
||||
}
|
||||
|
||||
function getEffectiveDeclarationFlags(n: Declaration, flagsToCheck: ModifierFlags): ModifierFlags {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
tests/cases/conformance/classes/members/privateNames/privateNameAmbientNoImplicitAny.ts(5,5): error TS7008: Member '#prop' implicitly has an 'any' type.
|
||||
|
||||
|
||||
==== tests/cases/conformance/classes/members/privateNames/privateNameAmbientNoImplicitAny.ts (1 errors) ====
|
||||
declare class A {
|
||||
#prop;
|
||||
}
|
||||
class B {
|
||||
#prop;
|
||||
~~~~~
|
||||
!!! error TS7008: Member '#prop' implicitly has an 'any' type.
|
||||
}
|
||||
12
tests/baselines/reference/privateNameAmbientNoImplicitAny.js
Normal file
12
tests/baselines/reference/privateNameAmbientNoImplicitAny.js
Normal file
@@ -0,0 +1,12 @@
|
||||
//// [privateNameAmbientNoImplicitAny.ts]
|
||||
declare class A {
|
||||
#prop;
|
||||
}
|
||||
class B {
|
||||
#prop;
|
||||
}
|
||||
|
||||
//// [privateNameAmbientNoImplicitAny.js]
|
||||
class B {
|
||||
#prop;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
=== tests/cases/conformance/classes/members/privateNames/privateNameAmbientNoImplicitAny.ts ===
|
||||
declare class A {
|
||||
>A : Symbol(A, Decl(privateNameAmbientNoImplicitAny.ts, 0, 0))
|
||||
|
||||
#prop;
|
||||
>#prop : Symbol(A.#prop, Decl(privateNameAmbientNoImplicitAny.ts, 0, 17))
|
||||
}
|
||||
class B {
|
||||
>B : Symbol(B, Decl(privateNameAmbientNoImplicitAny.ts, 2, 1))
|
||||
|
||||
#prop;
|
||||
>#prop : Symbol(B.#prop, Decl(privateNameAmbientNoImplicitAny.ts, 3, 9))
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
=== tests/cases/conformance/classes/members/privateNames/privateNameAmbientNoImplicitAny.ts ===
|
||||
declare class A {
|
||||
>A : A
|
||||
|
||||
#prop;
|
||||
>#prop : any
|
||||
}
|
||||
class B {
|
||||
>B : B
|
||||
|
||||
#prop;
|
||||
>#prop : any
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// @noImplicitAny: true
|
||||
// @target: ESNext
|
||||
declare class A {
|
||||
#prop;
|
||||
}
|
||||
class B {
|
||||
#prop;
|
||||
}
|
||||
Reference in New Issue
Block a user