{}, // some styles
hover: {}
}
в компонент. Ключами могут быть только значения из
type ButtonStates = "enabled" | "hover" | "pressed" | "default"
если написать тип таким образом
export type ButtonProps = {
labelStyle?:Record<ButtonStates, StyleProp<ViewStyle>>
}
возникает ошибка типов, что нет всех ключей в объекте (т.е. "pressed" в примере объекта)
при такой записи
export type ButtonProps = {
labelStyle?: { [key in ButtonStates]?: StyleProp<ViewStyle> };
}
проходят любые ключи
возможно указать типы так, чтобы можно было использовать только конкретные ключи и при этом они могли остутствовать в объекте?
labelStyle: [P in keyof ButtonStates]: ButtonStates[P]
ой стоп тебе надо создать type для объекта type Styles = { enabled: {}, default: {}, // some styles hover: {} } type ButtonStates = keyof Styles и воспользоваться в пропсах: labelStyle: [P in keyof Styles]: Styles[P]
Обсуждают сегодня