Вы можете вид сделать это, если вы знаете типы IData
во время компиляции. Таким образом, вам нужно что-то вроде:
const data = [
{
title: "First name",
accessor: "firstname",
},
{
title: "Last name",
accessor: "surname",
}
] as const
type Accessors = typeof data[number]["accessor"]
type ICell = Record<Accessors, string>
const cells: ICell[] = [
{
firstname: "Davy",
surname: "James"
},
{
firstname: "Billy",
surname: "Cricket"
}
]
Если вы не знаете структуру data
во время компиляции, как указали другие ответы, вы не можете этого сделать. Также (как и любой другой объект) вы должны проверить, что любые другие данные, созданные во время выполнения, соответствуют типу данных ICell
, и вы не можете проверить их во время выполнения, если это то, что вы пытаетесь сделать.