{}, // 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]
Обсуждают сегодня