Я бы хотел расширить describe
Мокко с помощью функции forUsers
, которая создала бы несколько описаний.Один на каждого пользователя.
Исходное описание:
interface IContextDefinition {
(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;
only(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;
skip(description: string, callback: (this: ISuiteCallbackContext) => void): void;
timeout(ms: number): void;
}
Мое расширение:
declare namespace Mocha {
interface IContextDefinition {
forUsers(description: string, users: userType[], callback: (this: ISuiteCallbackContext, user: Cypress.userType) => void): void
only: {
(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite
forUsers(description: string, users: userType[], callback: (this: ISuiteCallbackContext, user: userType) => void): void
}
skip: {
(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite
forUsers(description: string, users: userType[], callback: (this: ISuiteCallbackContext, user: userType) => void): void
}
}
}
Но я получаю эту ошибку:
Subsequent property declarations must have the same type. Property 'only' must be of type '(description: string, callback: (this: ISuiteCallbackContext) => void) => ISuite', but here has type '{ (description: string, callback: (this: ISuiteCallbackContext) => void): ISuite; forUsers(description: string, users: userType[], callback: (this: ISuiteCallbackContext, user: userType) => void): void; }'.
То, что only
, может быть только оригинального типа, даже если новый тип включает в себя старый.