File: subclassThisTypeAssignable.errors.txt

package info (click to toggle)
node-typescript 4.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 396,552 kB
  • sloc: javascript: 1,444,377; makefile: 7; sh: 3
file content (34 lines) | stat: -rw-r--r-- 1,261 bytes parent folder | download | duplicates (2)
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
tests/cases/compiler/tile1.ts(6,81): error TS2744: Type parameter defaults can only reference previously declared type parameters.


==== tests/cases/compiler/tile1.ts (1 errors) ====
    interface Lifecycle<Attrs, State> {
    	oninit?(vnode: Vnode<Attrs, State>): number;
    	[_: number]: any;
    }
    
    interface Vnode<Attrs, State extends Lifecycle<Attrs, State> = Lifecycle<Attrs, State>> {
                                                                                    ~~~~~
!!! error TS2744: Type parameter defaults can only reference previously declared type parameters.
    	tag: Component<Attrs, State>;
    }
    
    interface Component<Attrs, State> {
    	view(this: State, vnode: Vnode<Attrs, State>): number;
    }
    
    interface ClassComponent<A> extends Lifecycle<A, ClassComponent<A>> {
    	oninit?(vnode: Vnode<A, this>): number;
    	view(vnode: Vnode<A, this>): number;
    }
    
    interface MyAttrs { id: number }
    class C implements ClassComponent<MyAttrs> {
    	view(v: Vnode<MyAttrs>) { return 0; }
    }
    
    const test8: ClassComponent<any> = new C();
==== tests/cases/compiler/file1.js (0 errors) ====
    /** @type {ClassComponent<any>} */
    const test9 = new C();