51 lines
2.1 KiB
Plaintext
51 lines
2.1 KiB
Plaintext
tests/cases/compiler/assignmentToObjectAndFunction.ts(1,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'.
|
|
Types of property 'toString' are incompatible.
|
|
Type 'number' is not assignable to type '() => string'.
|
|
tests/cases/compiler/assignmentToObjectAndFunction.ts(8,5): error TS2322: Type '{}' is not assignable to type 'Function'.
|
|
Property 'apply' is missing in type '{}'.
|
|
tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not assignable to type 'Function'.
|
|
Types of property 'apply' are incompatible.
|
|
Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'.
|
|
|
|
|
|
==== tests/cases/compiler/assignmentToObjectAndFunction.ts (3 errors) ====
|
|
var errObj: Object = { toString: 0 }; // Error, incompatible toString
|
|
~~~~~~
|
|
!!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'.
|
|
!!! error TS2322: Types of property 'toString' are incompatible.
|
|
!!! error TS2322: Type 'number' is not assignable to type '() => string'.
|
|
var goodObj: Object = {
|
|
toString(x?) {
|
|
return "";
|
|
}
|
|
}; // Ok, because toString is a subtype of Object's toString
|
|
|
|
var errFun: Function = {}; // Error for no call signature
|
|
~~~~~~
|
|
!!! error TS2322: Type '{}' is not assignable to type 'Function'.
|
|
!!! error TS2322: Property 'apply' is missing in type '{}'.
|
|
|
|
function foo() { }
|
|
module foo {
|
|
export var boom = 0;
|
|
}
|
|
|
|
var goodFundule: Function = foo; // ok
|
|
|
|
function bar() { }
|
|
module bar {
|
|
export function apply(thisArg: string, argArray?: string) { }
|
|
}
|
|
|
|
var goodFundule2: Function = bar; // ok
|
|
|
|
function bad() { }
|
|
module bad {
|
|
export var apply = 0;
|
|
}
|
|
|
|
var badFundule: Function = bad; // error
|
|
~~~~~~~~~~
|
|
!!! error TS2322: Type 'typeof bad' is not assignable to type 'Function'.
|
|
!!! error TS2322: Types of property 'apply' are incompatible.
|
|
!!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. |