Скажите компилятору TypeScript пропустить | неопределенный тип при использовании? в интерфейсе - PullRequest
0 голосов
/ 05 марта 2020
export interface HTMLButtonProps {
  readonly btnType?: BtnType;
}

export const Button = styled.button<HTMLButtonProps>`

  // btnType becomes BtnType | undefined
  ${({ btnType }) => {}
`;

Button.defaultProps = {
  btnType: BtnType.Normal
};

При добавлении ? в интерфейс prop, сообщая машинописному тексту, что это необязательная prop, вместо этого тип становится BtnType | undefined. Поскольку я пытаюсь сделать изнуряющее выражение switch, | undefined продолжает портить его, наряду с другими вещами, где я вынужден использовать синтаксис as.

Кроме того, так как я установив значение в defaultProp для btnType, мы будем предполагать, что это свойство никогда не будет undefined (несмотря на то, что оно может быть undefined при передаче в качестве реквизита, что нормально).

Как я могу сказать машинописи, что btnType является только типа BtnType без необходимости делать as BtnType везде в коде или создавать новую переменную из существующего параметра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...