Не обязательные индексные сигнатуры
Пытаюсь определить тип функции с не обязательными свойствами того же типа, что и возвращаемое значение
type MyFunction<T> = {
(): T;
[key: string | symbol]: T;
};
При попытке его использовать
let test: MyFunction<number> = () => 15;
TS выдает ошибку
Type '() => number' is not assignable to type 'MyFunction'. Index signature for type 'string' is missing in type '() => number'.
Как обозначить, что эти свойства не обязательные?