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