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'.
}
|