File: inferFromNestedSameShapeTuple.errors.txt

package info (click to toggle)
node-typescript 5.1.6%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 492,516 kB
  • sloc: javascript: 2,078,951; makefile: 6; sh: 1
file content (54 lines) | stat: -rw-r--r-- 1,584 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
45
46
47
48
49
50
51
52
53
54
tests/cases/compiler/inferFromNestedSameShapeTuple.ts(42,5): error TS2322: Type 'T1<U>' is not assignable to type 'T2<U>'.
  Type at position 0 in source is not compatible with type at position 0 in target.
    Type 'number' is not assignable to type '42'.


==== tests/cases/compiler/inferFromNestedSameShapeTuple.ts (1 errors) ====
    // repro #48524
    
    type Magic<X> = X extends [[infer Y, ...infer _], ...infer __] ? Y : never;
    
    type R = Magic<[[number]]>
    
    // repro #52722
    
    type Recursive<Id> = {
        id: Id
        children: readonly Recursive<Id>[]
    }
    
    declare function getIds<Id>(items: readonly Recursive<Id>[]): Id[];
    
    const items = [{
        id: 'a',
        children: [{
            id: 'b',
            children: []
        }]
    }] as const satisfies readonly Recursive<string>[]
    
    const foo = getIds(items)
    
    // variant with a fresh argument
    const foo2 = getIds([{
        id: 'a',
        children: [{
            id: 'b',
            children: []
        }]
    }] as const)
    
    // Repro from comment in #49226
    
    type T1<T> = [number, T1<{ x: T }>];
    type T2<T> = [42, T2<{ x: T }>];
    
    function qq<U>(x: T1<U>, y: T2<U>) {
        x = y;
        y = x;  // Error
        ~
!!! error TS2322: Type 'T1<U>' is not assignable to type 'T2<U>'.
!!! error TS2322:   Type at position 0 in source is not compatible with type at position 0 in target.
!!! error TS2322:     Type 'number' is not assignable to type '42'.
    }