File: circularBaseTypes.js

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (44 lines) | stat: -rw-r--r-- 707 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//// [circularBaseTypes.ts]
// Repro from #38098

type M<T> = { value: T };
interface M2 extends M<M3> {};  // Error
type M3 = M2[keyof M2];  // Error

function f(m: M3) {
  return m.value;
}

// Repro from #32581

type X<T> = { [K in keyof T]: string } & { b: string };
interface Y extends X<Y> {
  a: "";
}


//// [circularBaseTypes.js]
"use strict";
// Repro from #38098
; // Error
function f(m) {
    return m.value;
}


//// [circularBaseTypes.d.ts]
type M<T> = {
    value: T;
};
interface M2 extends M<M3> {
}
type M3 = M2[keyof M2];
declare function f(m: M3): any;
type X<T> = {
    [K in keyof T]: string;
} & {
    b: string;
};
interface Y extends X<Y> {
    a: "";
}