• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//// [privateNamesAndkeyof.ts]
2class A {
3    #fooField = 3;
4    #fooMethod() { };
5    get #fooProp() { return 1; };
6    set #fooProp(value: number) { };
7    bar = 3;
8    baz = 3;
9}
10
11// `keyof A` should not include '#foo*'
12let k: keyof A = "bar"; // OK
13k = "baz"; // OK
14
15k = "#fooField"; // Error
16k = "#fooMethod"; // Error
17k = "#fooProp"; // Error
18
19k = "fooField"; // Error
20k = "fooMethod"; // Error
21k = "fooProp"; // Error
22
23
24//// [privateNamesAndkeyof.js]
25"use strict";
26var _A_instances, _A_fooField, _A_fooMethod, _A_fooProp_get, _A_fooProp_set;
27class A {
28    constructor() {
29        _A_instances.add(this);
30        _A_fooField.set(this, 3);
31        this.bar = 3;
32        this.baz = 3;
33    }
34    ;
35    ;
36    ;
37}
38_A_fooField = new WeakMap(), _A_instances = new WeakSet(), _A_fooMethod = function _A_fooMethod() { }, _A_fooProp_get = function _A_fooProp_get() { return 1; }, _A_fooProp_set = function _A_fooProp_set(value) { };
39// `keyof A` should not include '#foo*'
40let k = "bar"; // OK
41k = "baz"; // OK
42k = "#fooField"; // Error
43k = "#fooMethod"; // Error
44k = "#fooProp"; // Error
45k = "fooField"; // Error
46k = "fooMethod"; // Error
47k = "fooProp"; // Error
48