Мне нужно ограничить использование пользователями только JSON -подобных реквизитов (null, string, number, boolean и object или arrays с этими примитивами).
У меня есть тип для чистого JSON:
export type SerializableObject = { [key: string]: Serializable }
export interface SerializableArray extends Array<Serializable> {}
export type Serializable = null | string | number | boolean | SerializableArray | SerializableObject
, но некоторый тип не может быть назначен:
[...]
Type '{ tabId: string; tabs: TabData[]; }' is not assignable to type 'SerializableObject'.
TabData:
interface TabData {
label: string
body: string
}
Возможно ли написать тип, который включает в себя более подробные c типов, но все же JSON -подобно?