// Dotted property access of property that exists on value's apparent type
varbb=obj.hasOwnProperty;
// Dotted property access of property that doesn't exist on value's apparent type
varcc=obj.qqq;// error
// Bracket notation property access using string literal value on type with property of that literal name
vardd=obj['literal property'];
vardd:number;
// Bracket notation property access using string literal value on type without property of that literal name
varee=obj['wa wa wa wa wa'];
varee:any;
// Bracket notation property access using numeric string literal value on type with property of that literal name
varff=obj['10'];
varff:string;
// Bracket notation property access using numeric string literal value on type without property of that literal name
vargg=obj['1'];
vargg:any;
// Bracket notation property access using numeric value on type with numeric index signature
varhh=numIndex[3.0];
varhh:string;
// Bracket notation property access using enum value on type with numeric index signature
varii=numIndex[Compass.South];
varii:string;
// Bracket notation property access using value of type 'any' on type with numeric index signature
varjj=numIndex[anyVar];
varjj:string;
// Bracket notation property access using string value on type with numeric index signature
varkk=numIndex['what'];
varkk:any;
// Bracket notation property access using value of other type on type with numeric index signature and no string index signature
varll=numIndex[window];// Error
// Bracket notation property access using string value on type with string index signature and no numeric index signature
varmm=strIndex['N'];
varmm:Compass;
varmm2=strIndex['zzz'];
varmm2:Compass;
// Bracket notation property access using numeric value on type with string index signature and no numeric index signature
varnn=strIndex[10];
varnn:Compass;
// Bracket notation property access using enum value on type with string index signature and no numeric index signature
varoo=strIndex[Compass.East];
varoo:Compass;
// Bracket notation property access using value of type 'any' on type with string index signature and no numeric index signature
varpp=strIndex[<any>null];
varpp:Compass;
// Bracket notation property access using numeric value on type with no index signatures
varqq=noIndex[123];
varqq:any;
// Bracket notation property access using string value on type with no index signatures
varrr=noIndex['zzzz'];
varrr:any;
// Bracket notation property access using enum value on type with no index signatures
varss=noIndex[Compass.South];
varss:any;
// Bracket notation property access using value of type 'any' on type with no index signatures
vartt=noIndex[<any>null];
vartt:any;
// Bracket notation property access using values of other types on type with no index signatures
varuu=noIndex[window];// Error
// Bracket notation property access using numeric value on type with numeric index signature and string index signature
varvv=noIndex[32];
varvv:any;
// Bracket notation property access using enum value on type with numeric index signature and string index signature
varww=bothIndex[Compass.East];
varww:HTMLDivElement;
// Bracket notation property access using value of type 'any' on type with numeric index signature and string index signature
varxx=bothIndex[<any>null];
varxx:HTMLDivElement;
// Bracket notation property access using string value on type with numeric index signature and string index signature
varyy=bothIndex['foo'];
varyy:HTMLElement;
// Bracket notation property access using numeric string value on type with numeric index signature and string index signature
varzz=bothIndex['1.0'];
varzz:HTMLElement;
// Bracket notation property access using value of other type on type with numeric index signature and no string index signature and string index signature
// Bracket notation property access using value of other type on type with numeric index signature and no string index signature and string index signature