Это простой вопрос, и я удивлен, что нигде не могу найти на него четкого ответа. Я создаю API, и мне нужно определить интерфейс, который может иметь несколько (строковых) свойств, но для них нет заданного количества свойств и заданных имен (но все они должны иметь строковые значения). Таким образом, все следующие объекты будут соответствовать типу:
{ slot: "ten" }
{ class: "Luxury", base: "never", city: "Timbuktu" }
{ slot: "ten", class: "Luxury" }
Я подумал о следующем.
interface MyInterface {
[key: string]: string;
}
Но для меня это означает, что объекты могут иметь только одно свойство (с разными именами), вместо того, чтобы иметь несколько свойств (с разными именами).
Как лучше всего это сделать? Обратите внимание, что я не могу контролировать, какие имена свойств будет использовать код, вызывающий мой API. Вызывающие могут использовать любые имена свойств, какие захотят.