type Counters = { [ key ] : number | undefined ; } ; declare let counters ; const key1 = Symbol ( ) ; const key2 = Symbol ( ) ; counters [ key1 ] = 1 ; counters [ key2 ] = 2 ; counters [ 'foo' ] = 123 ; type Options = { width ? : number ; height ? : number ; [ optName ] : unknown ; } ; let opts = { width : 100 , height : 100 , "data-foo" : true , "bad-foo" : false } ; type Id = string & { __tag : 'id ' ; } ; declare const s ; declare const id ; declare const names ; names [ s ] = 'foo' ; names [ id ] = 'bar' ; type PropertyMap = { [ key ] : boolean ; } ;