TypeScript/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt
2014-11-05 12:26:03 -08:00

22 lines
1.6 KiB
Plaintext

tests/cases/compiler/optionalFunctionArgAssignability.ts(7,1): error TS2322: Type '<U>(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise<U>' is not assignable to type '<U>(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise<U>'.
Types of parameters 'onFulFill' and 'onFulfill' are incompatible.
Type '(value: number) => any' is not assignable to type '(value: string) => any'.
Types of parameters 'value' and 'value' are incompatible.
Type 'number' is not assignable to type 'string'.
==== tests/cases/compiler/optionalFunctionArgAssignability.ts (1 errors) ====
interface Promise<T> {
then<U>(onFulfill?: (value: T) => U, onReject?: (reason: any) => U): Promise<U>;
}
var a = function then<U>(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise<U> { return null };
var b = function then<U>(onFulFill?: (value: number) => U, onReject?: (reason: any) => U): Promise<U> { return null };
a = b; // error because number is not assignable to string
~
!!! error TS2322: Type '<U>(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise<U>' is not assignable to type '<U>(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise<U>'.
!!! error TS2322: Types of parameters 'onFulFill' and 'onFulfill' are incompatible.
!!! error TS2322: Type '(value: number) => any' is not assignable to type '(value: string) => any'.
!!! error TS2322: Types of parameters 'value' and 'value' are incompatible.
!!! error TS2322: Type 'number' is not assignable to type 'string'.