127 lines
No EOL
5.8 KiB
Text
127 lines
No EOL
5.8 KiB
Text
tests/cases/conformance/functions/functionImplementationErrors.ts(2,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(6,19): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(10,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(16,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(25,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(30,17): error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(35,17): error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(40,28): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(49,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(53,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(57,11): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(61,10): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(65,11): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/functions/functionImplementationErrors.ts(69,11): error TS2354: No best common type exists among return expressions.
|
|
|
|
|
|
==== tests/cases/conformance/functions/functionImplementationErrors.ts (14 errors) ====
|
|
// FunctionExpression with no return type annotation with multiple return statements with unrelated types
|
|
var f1 = function () {
|
|
~~~~~~~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return '';
|
|
return 3;
|
|
};
|
|
var f2 = function x() {
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return '';
|
|
return 3;
|
|
};
|
|
var f3 = () => {
|
|
~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~
|
|
return 3;
|
|
~~~~~~~~~~~~~
|
|
};
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
// FunctionExpression with no return type annotation with return branch of number[] and other of string[]
|
|
var f4 = function () {
|
|
~~~~~~~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
if (true) {
|
|
return [''];
|
|
} else {
|
|
return [1];
|
|
}
|
|
}
|
|
|
|
// Function implemetnation with non -void return type annotation with no return
|
|
function f5(): number {
|
|
~~~~~~
|
|
!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
|
|
}
|
|
|
|
var m;
|
|
// Function signature with parameter initializer referencing in scope local variable
|
|
function f6(n = m) {
|
|
~
|
|
!!! error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it.
|
|
var m = 4;
|
|
}
|
|
|
|
// Function signature with initializer referencing other parameter to the right
|
|
function f7(n = m, m?) {
|
|
~
|
|
!!! error TS2373: Initializer of parameter 'n' cannot reference identifier 'm' declared after it.
|
|
}
|
|
|
|
// FunctionExpression with non -void return type annotation with a throw, no return, and other code
|
|
// Should be error but isn't
|
|
undefined === function (): number {
|
|
~~~~~~
|
|
!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
|
|
throw undefined;
|
|
var x = 4;
|
|
};
|
|
|
|
class Base { private x; }
|
|
class AnotherClass { private y; }
|
|
class Derived1 extends Base { private m; }
|
|
class Derived2 extends Base { private n; }
|
|
function f8() {
|
|
~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return new Derived1();
|
|
return new Derived2();
|
|
}
|
|
var f9 = function () {
|
|
~~~~~~~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return new Derived1();
|
|
return new Derived2();
|
|
};
|
|
var f10 = () => {
|
|
~~~~~~~
|
|
return new Derived1();
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
return new Derived2();
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
};
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
function f11() {
|
|
~~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return new Base();
|
|
return new AnotherClass();
|
|
}
|
|
var f12 = function () {
|
|
~~~~~~~~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
return new Base();
|
|
return new AnotherClass();
|
|
};
|
|
var f13 = () => {
|
|
~~~~~~~
|
|
return new Base();
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
return new AnotherClass();
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
};
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|