type MatchOperator = "==" | ">" | "<";
type Criteria<T, P extends keyof T> = {
field: P,
value: T[P],
operator: MatchOperator,
}
interface User {
name: string;
age: number;
id: number;
}
const adultCriteria: Criteria<User, "age"> = {
field: "age",
operator: ">",
value: 18
}
Есть ли лучший способ ограничить тип value
на основе field
с использованием Typescript, как указано ниже?
const adultCriteria: Criteria<User> = {
field: "age",
operator: ">",
value: 18
}