Search Terms
Reflect.apply
Reflect.construct
Function.prototype.apply
Function.prototype.call
Function.prototype.bind
Suggestion
These functions should not return any.
Related:
#212
#27028
Use Cases
function getString() {
return 'string'
}
class ClassA {}
Reflect.apply(getString, null, []) // expected string but got any
Reflect.construct(ClassA, []) // expected ClassA but got any
Function.prototype.apply.call(getString, undefined) // expected string but got any
Function.prototype.call.call(getString, undefined) // expected string but got any
Function.prototype.bind.call(getString, undefined)() // expected string but got any
Examples
Reflect:
// old
function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
// new
function apply<T>(target: (...args: any) => T, thisArgument: any, argumentsList: ArrayLike<any>): T;
// old
function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;
// new
function construct<T>(target: new (...args: any) => T, argumentsList: ArrayLike<any>, newTarget?: any): T;
Checklist
My suggestion meets these guidelines: