首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含枚举值的设置状态的接口引发错误

包含枚举值的设置状态的接口引发错误
EN

Stack Overflow用户
提问于 2019-04-11 20:17:58
回答 1查看 35关注 0票数 1

正在尝试运行以下命令:

代码语言:javascript
复制
type Mode = 'signup' | 'signin' | 'forgot-password';

interface IProps {}

interface IState {
  mode: Mode;
}

class SigninSignupModal extends React.Component<IProps, IState> {
  state = {
    mode: 'signup',
  };
}

抛出以下错误:

代码语言:javascript
复制
Type 'string' is not assignable to type 'Mode'. ts(2416)

为什么会这样呢?

例如,这是非常好的:

代码语言:javascript
复制
type Mode = 'signup' | 'signin' | 'forgot-password';

let mode: Mode = 'signup';

而且,这也很好:

代码语言:javascript
复制
class SigninSignupModal extends React.Component<IProps, IState> {
  construct() {
    this.state = {
      mode: 'signup',
    };
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 20:24:25

我猜您必须显式地将您的string类型转换为Mode类型:

代码语言:javascript
复制
this.state = {
  mode: 'signup' as Mode,
};

代码语言:javascript
复制
    this.state = {
      mode: <Mode>'signup',
    };

有关更多信息,请滚动到“类型断言”:https://www.typescriptlang.org/docs/handbook/basic-types.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55632330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档