File: recursiveConditionalEvaluationNonInfinite.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (23 lines) | stat: -rw-r--r-- 662 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
=== tests/cases/compiler/recursiveConditionalEvaluationNonInfinite.ts ===
type Test<T> = [T] extends [any[]] ? { array: Test<T[0]> } : { notArray: T };
>Test : Test<T>
>array : Test<T[0]>
>notArray : T

declare const x: Test<number[]>;
>x : { array: { notArray: number; }; }

const y: { array: { notArray: number } } = x; // Error
>y : { array: {    notArray: number;}; }
>array : { notArray: number; }
>notArray : number
>x : { array: { notArray: number; }; }

declare const a: Test<number>;
>a : { notArray: number; }

const b: { notArray: number } = a; // Works
>b : { notArray: number; }
>notArray : number
>a : { notArray: number; }