Вы можете использовать подпись индекса строки , чтобы показать, что все свойства соответствуют определенному типу значения; в вашем случае any
. Любые именованные свойства, которые вы добавляете к объекту вне подписи индекса, должны по-прежнему соответствовать этому типу, но вы можете сделать их более точными c. Поскольку number
является более точным c, чем any
, вы можете представить свой тип как { [k: string]: any; id: number }
.
Так что
const settings: { id: number, [k: string]: any } =
{id: 37593, created: "23/04/2020", last_active: "23/04/2020"};
должно работать для вас, в зависимости от вашего использования дело. Обратите внимание, что такая аннотация расширит тип settings
до аннотированного типа, поэтому компилятор не запомнит ничего, не указанного в этом типе:
settings.id; // known to be number
settings.created; // only known as any, not string
settings.randomPropName; // also known as any
Хорошо, надеюсь, это поможет; удачи!
Детская площадка ссылка на код