У меня есть следующее JSON, которое я не могу контролировать:
{
"date": "2020-01-01T00:00:00",
"a": 0,
"b": 0,
"c": 0
}
Вместо указания интерфейса:
interface Foo {
date: Date,
"a": number,
"b": number,
"c": number
}
Я хочу быть в состоянии статически напечатать полезную нагрузку следующим образом:
type Age = "a";
type Salary = "b";
type Height = "c"
type Foo = Record<"date", Date> | Record<Age | Salary | Height, number>;
Несмотря на то, что компилятор выглядит счастливым, но когда я пытаюсь получить date от объекта, я получаю следующую ошибку:
const foo = {
"date": "2020-01-01T00:00:00",
"a": 0,
"b": 0,
"c": 0
} as Foo;
Элемент неявно имеет тип 'any'.
Если я удалю Record<Age | Salary | Height, number>
, то ошибка исчезнет.