class A { foo: T; } class C { data: A; get x(): A { return this.data; } set x(v: A) { this.data = v; } } var x = new C(); var r = x.x; x.x = r;