File: typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (23 lines) | stat: -rw-r--r-- 1,238 bytes parent folder | download | duplicates (5)
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/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(1,30): error TS2744: Type parameter defaults can only reference previously declared type parameters.
tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(3,18): error TS2322: Type '{ foo: string; }' is not assignable to type 'Test<any>'.
  Object literal may only specify known properties, and 'foo' does not exist in type 'Test<any>'.


==== tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts (2 errors) ====
    type Test<T extends string = T> = { value: T };  // Error
                                 ~
!!! error TS2744: Type parameter defaults can only reference previously declared type parameters.
    
    let zz: Test = { foo: "abc" };  // should error on comparison with Test<string>
                     ~~~~~~~~~~
!!! error TS2322: Type '{ foo: string; }' is not assignable to type 'Test<any>'.
!!! error TS2322:   Object literal may only specify known properties, and 'foo' does not exist in type 'Test<any>'.
    
    let zzy: Test = { value: {} };
    
    // Simplified repro from #28873
    
    class C1<T extends C1 = any> {}
    
    class C2<T extends C2<any> = any> {}