// @target: es5 class Foo { x } class Foo2 { x; y } class C { [s: string]: Foo2; get ["get1"]() { return new Foo } } class D extends C { set ["set1"](p: Foo) { } }