Вы можете добавить подпись индекса в виде записи к любому интерфейсу следующим образом:
interface Base {
value: number;
}
interface Extension extends Base {
[key: string]: unknown;
}
В дополнение к свойствам из Base
новый интерфейс Extension
теперь будет принимать любые дополнительные произвольные свойства с ключи типа string
.
Другой альтернативой, возможно, более понятным для человека решением, является написание типа, расширяющего ваш Base
и Record
тип:
type TypeExtension = Base & Record<string, unknown>;