File: promiseIdentity.errors.txt

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 (28 lines) | stat: -rw-r--r-- 1,391 bytes parent folder | download | duplicates (4)
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
tests/cases/compiler/promiseIdentity.ts(21,5): error TS2403: Subsequent variable declarations must have the same type.  Variable 'y' must be of type 'IPromise2<string, number>', but here has type 'Promise2<any, string>'.


==== tests/cases/compiler/promiseIdentity.ts (1 errors) ====
    export interface IPromise<T> {
        then<U>(callback: (x: T) => IPromise<U>): IPromise<U>;
    }
    interface Promise<T> {
        then<U>(callback: (x: T) => Promise<U>): Promise<U>;
    }
    var x: IPromise<string>;
    var x: Promise<string>;
    
    
    interface IPromise2<T, V> {
        then<U, W>(callback: (x: T) => IPromise2<U, W>): IPromise2<W, U>;
    }
    interface Promise2<T, V> {
        then<U, W>(callback: (x: V) => Promise2<U, T>): Promise2<T, W>; // Uses V instead of T in callback's parameter
    }
    
    // Ok because T in this particular Promise2 is any, as are all the U and W references.
    // Also, the V of Promise2 happens to coincide with the T of IPromise2 (they are both string).
    var y: IPromise2<string, number>;
    var y: Promise2<any, string>;
        ~
!!! error TS2403: Subsequent variable declarations must have the same type.  Variable 'y' must be of type 'IPromise2<string, number>', but here has type 'Promise2<any, string>'.
!!! related TS6203 tests/cases/compiler/promiseIdentity.ts:20:5: 'y' was also declared here.