为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript用接口如何描述数组的问题

TypeScript用接口如何描述数组的问题

阿波罗的战车 2018-11-14 14:13:49
interface Squares {  squares: (null | string)[]}interface History {  [index: number]: Squares}interface State {  history: History  stepNumber: number  xIsNext: Boolean}class Game extends React.Component {  state: State  constructor() {    super()    this.state = {      history: [{        squares: Array(9).fill(null)      }],      stepNumber: 0,      xIsNext: true    }  }    handleClick(i: number) {    const history = this.state.history.slice(0, this.state.stepNumber + 1)  }以上代码为项目代码的一部分,项目使用React+TypeScript开发,上面的代码在vscode中提示错误:Property 'slice' does not exist on type 'History'.。slice是数组方法,如果换成类似let a: string[] = ['Hello']这种方式则slice方法可以正常使用不会报错。题主目前是还是TypeScript初学者,想问一下各位:这种问题产生的原因是什么类似this.state这种结构的数据应该怎么用interface描述(主要是history这个数组怎么描述)
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

  1. 原因就是接口没有正确继承数组接口,导致数组的slice方法定义丢失

  2. 改成下面这样

interface History extends Array<Squares>{}


查看完整回答
反对 回复 2018-12-29
  • 1 回答
  • 0 关注
  • 1959 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信