#typescript
#typescript
Вопрос:
Я пытаюсь переопределить Func
тип в Mocha.
Он создан как:
type Func = (this: Context, done: Done) => void;
Я хочу изменить его на функцию с перегрузками.
import * as M from "mocha";
declare global {
namespace Mocha {
export interface Func {
(this: M.Context): void;
(this: M.Context, done: M.Done): void;
(this: M.Context, done?: M.Done): void;
}
}
}
Я получаю эту ошибку:
Duplicate identifier 'Func'.ts(2300)
index.d.ts(2178, 10): 'Func' was also declared here.
Довольно легко расширить интерфейс, но я считаю невозможным полностью изменить тип в этом случае type
interface
.
Комментарии:
1. Почему вы хотите переключить его на интерфейс? Не могли бы вы сделать его типом объединения с этими тремя сигнатурами функций?
2. @katamaster818 в этом случае мне нужно, чтобы тип включал перегрузки, я полагаю, что могу сделать это с помощью интерфейса, но эта же ошибка возникает, если вы пытаетесь заменить или объединение на
type Func
.