bind() returns type 'any' and does not type check it's arguments. e.g.
var add = function (a: number, b: number) { return a + b; };
var addString = add.bind(null, 'hello');
compiles without error and 'addString' has type any.
bind is a default way to achieve partial application so it would be great to have it typechecked properly.
Similarly for apply, the code
var listA = [1, 2, 3];
var listB = ['a', 'b', 'c'];
listA.push.apply(listA, listB);
compiles without error and listA is still incorrectly marked as type 'number[]'.
call() example:
var add5 = function (a: number) { return 5 + a; };
add5.call(null, 'a string');
Again without a compiler error.
bind() returns type 'any' and does not type check it's arguments. e.g.
compiles without error and 'addString' has type any.
bind is a default way to achieve partial application so it would be great to have it typechecked properly.
Similarly for apply, the code
compiles without error and listA is still incorrectly marked as type 'number[]'.
call() example:
Again without a compiler error.