2
2
const f = Object.freeze(function foo(a: number, b: string) { return false; });
3
3
>f : (a: number, b: string) => false
4
4
>Object.freeze(function foo(a: number, b: string) { return false; }) : (a: number, b: string) => false
5
- >Object.freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
5
+ >Object.freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
6
6
>Object : ObjectConstructor
7
- >freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
7
+ >freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
8
8
>function foo(a: number, b: string) { return false; } : (a: number, b: string) => false
9
9
>foo : (a: number, b: string) => false
10
10
>a : number
@@ -26,9 +26,9 @@ class C { constructor(a: number) { } }
26
26
const c = Object.freeze(C);
27
27
>c : typeof C
28
28
>Object.freeze(C) : typeof C
29
- >Object.freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
29
+ >Object.freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
30
30
>Object : ObjectConstructor
31
- >freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
31
+ >freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
32
32
>C : typeof C
33
33
34
34
new c(1);
@@ -37,34 +37,34 @@ new c(1);
37
37
>1 : 1
38
38
39
39
const a = Object.freeze([1, 2, 3]);
40
- >a : readonly number[ ]
41
- >Object.freeze([1, 2, 3]) : readonly number[ ]
42
- >Object.freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
40
+ >a : readonly [1, 2, 3 ]
41
+ >Object.freeze([1, 2, 3]) : readonly [1, 2, 3 ]
42
+ >Object.freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
43
43
>Object : ObjectConstructor
44
- >freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
45
- >[1, 2, 3] : number[ ]
44
+ >freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
45
+ >[1, 2, 3] : [1, 2, 3 ]
46
46
>1 : 1
47
47
>2 : 2
48
48
>3 : 3
49
49
50
50
a[0] = a[2].toString();
51
51
>a[0] = a[2].toString() : string
52
- >a[0] : number
53
- >a : readonly number[ ]
52
+ >a[0] : any
53
+ >a : readonly [1, 2, 3 ]
54
54
>0 : 0
55
55
>a[2].toString() : string
56
56
>a[2].toString : (radix?: number) => string
57
- >a[2] : number
58
- >a : readonly number[ ]
57
+ >a[2] : 3
58
+ >a : readonly [1, 2, 3 ]
59
59
>2 : 2
60
60
>toString : (radix?: number) => string
61
61
62
62
const o = Object.freeze({ a: 1, b: "string", c: true });
63
- >o : Readonly<{ a: 1; b: "string"; c: true; }>
64
- >Object.freeze({ a: 1, b: "string", c: true }) : Readonly<{ a: 1; b: "string"; c: true; }>
65
- >Object.freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
63
+ >o : Readonly<{ readonly a: 1; readonly b: "string"; readonly c: true; }>
64
+ >Object.freeze({ a: 1, b: "string", c: true }) : Readonly<{ readonly a: 1; readonly b: "string"; readonly c: true; }>
65
+ >Object.freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
66
66
>Object : ObjectConstructor
67
- >freeze : { <T extends Function>(f: T): T; <T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <T>(o: T): Readonly<T>; }
67
+ >freeze : { <T extends Function>(f: T): T; <const T extends { [idx: string]: object | U; }, U extends string | number | bigint | boolean | symbol>(o: T): Readonly<T>; <const T>(o: T): Readonly<T>; }
68
68
>{ a: 1, b: "string", c: true } : { a: 1; b: "string"; c: true; }
69
69
>a : 1
70
70
>1 : 1
@@ -76,12 +76,12 @@ const o = Object.freeze({ a: 1, b: "string", c: true });
76
76
o.b = o.a.toString();
77
77
>o.b = o.a.toString() : string
78
78
>o.b : any
79
- >o : Readonly<{ a: 1; b: "string"; c: true; }>
79
+ >o : Readonly<{ readonly a: 1; readonly b: "string"; readonly c: true; }>
80
80
>b : any
81
81
>o.a.toString() : string
82
82
>o.a.toString : (radix?: number) => string
83
83
>o.a : 1
84
- >o : Readonly<{ a: 1; b: "string"; c: true; }>
84
+ >o : Readonly<{ readonly a: 1; readonly b: "string"; readonly c: true; }>
85
85
>a : 1
86
86
>toString : (radix?: number) => string
87
87
0 commit comments