mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
@@ -16239,6 +16239,7 @@ namespace ts {
|
||||
if (unmatchedProperty.valueDeclaration
|
||||
&& isNamedDeclaration(unmatchedProperty.valueDeclaration)
|
||||
&& isPrivateIdentifier(unmatchedProperty.valueDeclaration.name)
|
||||
&& source.symbol
|
||||
&& source.symbol.flags & SymbolFlags.Class) {
|
||||
const privateIdentifierDescription = unmatchedProperty.valueDeclaration.name.escapedText;
|
||||
const symbolTableKey = getSymbolNameForPrivateIdentifier(source.symbol, privateIdentifierDescription);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts(2,3): error TS18028: Private identifiers are only available when targeting ECMAScript 2015 and higher.
|
||||
tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts(5,7): error TS2741: Property '#field' is missing in type '{}' but required in type 'Class'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts (2 errors) ====
|
||||
export class Class {
|
||||
#field: any
|
||||
~~~~~~
|
||||
!!! error TS18028: Private identifiers are only available when targeting ECMAScript 2015 and higher.
|
||||
}
|
||||
|
||||
const task: Class = {} as unknown;
|
||||
~~~~
|
||||
!!! error TS2741: Property '#field' is missing in type '{}' but required in type 'Class'.
|
||||
!!! related TS2728 tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts:2:3: '#field' is declared here.
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
//// [privateFieldAssignabilityFromUnknown.ts]
|
||||
export class Class {
|
||||
#field: any
|
||||
}
|
||||
|
||||
const task: Class = {} as unknown;
|
||||
|
||||
|
||||
//// [privateFieldAssignabilityFromUnknown.js]
|
||||
"use strict";
|
||||
var _field;
|
||||
exports.__esModule = true;
|
||||
var Class = /** @class */ (function () {
|
||||
function Class() {
|
||||
_field.set(this, void 0);
|
||||
}
|
||||
return Class;
|
||||
}());
|
||||
exports.Class = Class;
|
||||
_field = new WeakMap();
|
||||
var task = {};
|
||||
@@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts ===
|
||||
export class Class {
|
||||
>Class : Symbol(Class, Decl(privateFieldAssignabilityFromUnknown.ts, 0, 0))
|
||||
|
||||
#field: any
|
||||
>#field : Symbol(Class.#field, Decl(privateFieldAssignabilityFromUnknown.ts, 0, 20))
|
||||
}
|
||||
|
||||
const task: Class = {} as unknown;
|
||||
>task : Symbol(task, Decl(privateFieldAssignabilityFromUnknown.ts, 4, 5))
|
||||
>Class : Symbol(Class, Decl(privateFieldAssignabilityFromUnknown.ts, 0, 0))
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
=== tests/cases/compiler/privateFieldAssignabilityFromUnknown.ts ===
|
||||
export class Class {
|
||||
>Class : Class
|
||||
|
||||
#field: any
|
||||
>#field : any
|
||||
}
|
||||
|
||||
const task: Class = {} as unknown;
|
||||
>task : Class
|
||||
>{} as unknown : unknown
|
||||
>{} : {}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export class Class {
|
||||
#field: any
|
||||
}
|
||||
|
||||
const task: Class = {} as unknown;
|
||||
Reference in New Issue
Block a user