У меня есть этот сценарий, файл t.ts:машинопись переменное число параметров в функции определения интерфейса 0.9.5
interface Itest{
(event: any, ...args: any[]):any;
}
var t1: Itest = function (testparam) { return true;};
var t2: Itest = function (testparam, para1) { return true; };
var t3: Itest = function (testparam, para1, para2) { return true; };
interface Itest2 {
(event: any, para1,...args: any[]): any;
}
var t4: Itest2 = function (testparam, para1) { return true; };
var t5: Itest2 = function (testparam, para1, para2) { return true; };
Когда я компилирую это с TSC 0.9.5 я получаю следующие ошибки:
tsc --target ES5 "t.ts"
t.ts(6,8): error TS2012: Cannot convert '(testparam: any, para1: any) => boolean' to 'Itest':
Call signatures of types '(testparam: any, para1: any) => boolean' and 'Itest' are incompatible:
Call signature expects 1 or fewer parameters.
t.ts(7,8): error TS2012: Cannot convert '(testparam: any, para1: any, para2: any) => boolean' to 'Itest':
Call signatures of types '(testparam: any, para1: any, para2: any) => boolean' and 'Itest' are incompatible:
Call signature expects 1 or fewer parameters.
t.ts(14,8): error TS2012: Cannot convert '(testparam: any, para1: any, para2: any) => boolean' to 'Itest2':
Call signatures of types '(testparam: any, para1: any, para2: any) => boolean' and 'Itest2' are incompatible:
Call signature expects 2 or fewer parameters.
Я пропустил что-то или это не работает? Он работал в 0.9.1.1. благодаря!
Это известное разрывное изменение 0.9.5 см [Остальные аргументы теперь правильно проверены на соответствие действительности) (https://typescript.codeplex.com/wikipage?title=Known%20breaking%20changes%20between%200.8%20and%200.9) – nemesv