Я пытаюсь создать тип для описания прокси-объекта ES6, где я буду знать типы для нескольких ключей, а остальные ключи будут общими с обратным вызовом в качестве значения, и я не буду знать их имена до времени выполнения .
Однако, если я попробую что-то вроде этого:
interface MyCallback {
(): void;
}
interface MyType {
myKey1: number;
[key: string]: MyCallBack;
}
Я получаю такие ошибки, как:
[ts] Property 'myKey1' of type 'number' is not assignable to string index type 'MyCallback'.
Если я добавлю [key: string]: number
, я получу ошибку Duplicate string index signature
.
Если я перегружу его так, что будет похоже на number | MyCallback
, я получу эту ошибку, если попытаюсь вызвать обратный вызов на экземпляре MyType
:
[ts] Cannot invoke an expression whose type lacks a call signature. Type 'number | MyCallback' has no compatible call signatures.
Возможно ли иметь такой тип, который я пытаюсь создать в TypeScript?