Жасмин на самом деле не имеет двух определенных методов (один перегружает другой). Причина, по которой вы видите это в вашей среде IDE, заключается в том, что в файле для набора текста есть две версии, объявленные для различного использования. Например, вот как старая версия DefinitiveTyped настроила функцию it()
:
// Type definitions for Jasmine 1.3
// ...
declare function it(expectation: string, assertion: () => void): void;
declare function it(expectation: string, assertion: (done: (err?: any) => void) => void): void;
Для справки, вот соответствующий код в этой версии Jasmine, чтобы показать, что есть только одна функция, обрабатывающая эти два варианта использования:
base.js (строки 485-501)
/**
* Creates a Jasmine spec that will be added to the current suite.
*
* // TODO: pending tests
*
* @example
* it('should be true', function() {
* expect(true).toEqual(true);
* });
*
* @param {String} desc description of this specification
* @param {Function} func defines the preconditions and expectations of the spec
*/
var it = function(desc, func) {
return jasmine.getEnv().it(desc, func);
};
if (isCommonJS) exports.it = it;
Env.js (строки 151-161)
jasmine.Env.prototype.it = function(description, func) {
var spec = new jasmine.Spec(this, this.currentSuite, description);
this.currentSuite.add(spec);
this.currentSpec = spec;
if (func) {
spec.runs(func);
}
return spec;
};