TypeScript/tests/baselines/reference/overloadResolutionClassConstructors.errors.txt

146 lines
7.4 KiB
Plaintext

tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(27,9): error TS2345: Argument of type '{}' is not assignable to parameter of type 'number'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(60,1): error TS2346: Supplied parameters do not match any signature of call target.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(61,1): error TS2346: Supplied parameters do not match any signature of call target.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(65,1): error TS2346: Supplied parameters do not match any signature of call target.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(73,25): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(74,9): error TS2344: Type 'number' does not satisfy the constraint 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(75,9): error TS2344: Type 'number' does not satisfy the constraint 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(79,9): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(80,9): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(84,9): error TS2344: Type 'boolean' does not satisfy the constraint 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(87,9): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(88,15): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'number'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(96,18): error TS2339: Property 'toFixed' does not exist on type 'string'.
tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts(98,18): error TS2339: Property 'blah' does not exist on type 'string'.
==== tests/cases/conformance/expressions/functionCalls/overloadResolutionClassConstructors.ts (14 errors) ====
class SomeBase {
private n;
public s: string;
}
class SomeDerived1 extends SomeBase {
private m;
}
class SomeDerived2 extends SomeBase {
private m;
}
class SomeDerived3 extends SomeBase {
private m;
}
// Ambiguous call picks the first overload in declaration order
class fn1 {
constructor(s: string);
constructor(s: number);
constructor() { }
}
new fn1(undefined);
// No candidate overloads found
new fn1({}); // Error
~~
!!! error TS2345: Argument of type '{}' is not assignable to parameter of type 'number'.
// Generic and non - generic overload where generic overload is the only candidate when called with type arguments
class fn2<T> {
constructor(s: string, n: number);
constructor(n: number, t: T);
constructor() { }
}
var d = new fn2<Date>(0, undefined);
// Generic and non - generic overload where generic overload is the only candidate when called without type arguments
var s = new fn2(0, '');
// Generic and non - generic overload where non - generic overload is the only candidate when called with type arguments
new fn2<Date>('', 0); // OK
// Generic and non - generic overload where non - generic overload is the only candidate when called without type arguments
new fn2('', 0); // OK
// Generic overloads with differing arity called without type arguments
class fn3<T, U, V> {
constructor(n: T);
constructor(s: string, t: T, u: U);
constructor(v: V, u: U, t: T);
constructor() { }
}
new fn3(3);
new fn3('', 3, '');
new fn3(5, 5, 5);
// Generic overloads with differing arity called with type arguments matching each overload type parameter count
new fn3<number>(4); // Error
~~~~~~~~~~~~~~~~~~
!!! error TS2346: Supplied parameters do not match any signature of call target.
new fn3<string, string>('', '', ''); // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2346: Supplied parameters do not match any signature of call target.
new fn3<number, string, string>('', '', 3);
// Generic overloads with differing arity called with type argument count that doesn't match any overload
new fn3<number, number, number, number>(); // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2346: Supplied parameters do not match any signature of call target.
// Generic overloads with constraints called with type arguments that satisfy the constraints
class fn4<T extends string, U extends number> {
constructor(n: T, m: U);
constructor() { }
}
new fn4<string, number>('', 3);
new fn4<string, number>(3, ''); // Error
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
new fn4<number, string>('', 3); // Error
~~~~~~
!!! error TS2344: Type 'number' does not satisfy the constraint 'string'.
new fn4<number, string>(3, ''); // Error
~~~~~~
!!! error TS2344: Type 'number' does not satisfy the constraint 'string'.
// Generic overloads with constraints called without type arguments but with types that satisfy the constraints
new fn4('', 3);
new fn4(3, ''); // Error
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
new fn4(3, undefined); // Error
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
new fn4('', null);
// Generic overloads with constraints called with type arguments that do not satisfy the constraints
new fn4<boolean, Date>(null, null); // Error
~~~~~~~
!!! error TS2344: Type 'boolean' does not satisfy the constraint 'string'.
// Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints
new fn4(true, null); // Error
~~~~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
new fn4(null, true); // Error
~~~~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'number'.
// Non - generic overloads where contextual typing of function arguments has errors
class fn5 {
constructor(f: (n: string) => void);
constructor(f: (n: number) => void);
constructor() { return undefined; }
}
new fn5((n) => n.toFixed());
~~~~~~~
!!! error TS2339: Property 'toFixed' does not exist on type 'string'.
new fn5((n) => n.substr(0));
new fn5((n) => n.blah); // Error
~~~~
!!! error TS2339: Property 'blah' does not exist on type 'string'.