2017-12-11 18:47:04 +01:00
|
|
|
// @lib: es6, dom
|
2017-11-30 18:40:43 +01:00
|
|
|
interface A { a: A }
|
|
|
|
declare let a: A;
|
|
|
|
type Deep<T> = { [K in keyof T]: Deep<T[K]> }
|
|
|
|
declare function foo<T>(deep: Deep<T>): T;
|
|
|
|
const out = foo(a);
|
2017-12-15 00:11:49 +01:00
|
|
|
out.a
|
|
|
|
out.a.a
|
|
|
|
out.a.a.a.a.a.a.a
|
2017-12-11 18:47:04 +01:00
|
|
|
|
|
|
|
let xhr: XMLHttpRequest;
|
|
|
|
const out2 = foo(xhr);
|
2017-12-15 00:11:49 +01:00
|
|
|
out2.responseXML
|
|
|
|
out2.responseXML.activeElement.className.length
|