У меня есть проект реагирования / машинописного текста, использующий шутку, где у меня есть собственный сопоставитель, например:
export const MyCustomMatchers = {
toBeTheSameAsRemote: function(_util: any, _customEqualityTesters: any) {
return {
compare: function(actual: Brand, expected: RemoteBrand) {
const pass: boolean = attributesMatch(actual, expected);
const message: string = pass
? 'Local matches Remote'
: 'Local does not match Remote';
return { pass, message: () => message };
}
};
}
};
на которые я ссылаюсь в своих тестах, выполняя внутри функции describe
:
beforeEach(() => {
jasmine.addMatchers(MyCustomMatchers);
});
И используйте это в it
функциях:
expect(localValue).toBeTheSameAsRemote(remoteValue);
Тесты выполняются правильно, но компилятор машинописного текста не распознает сопоставитель, что имеет смысл, потому что я нигде не определил его в системе типов.
Property 'toBeTheSameAsRemote' does not exist on type 'JestMatchersShape<Matchers<void, MyType[]>, Matchers<Promise<void>, MyType[]>>'.ts(2339)
То, что я нашел до сих пор, относится к расширению пространства имен для жасмина и/или шутки, например.
declare namespace jasmine {
interface Matchers {
toBeTheSameAsRemote(remote: any): any;
}
}
который не работал для меня.
Есть ли у вас какие-либо идеи?