javascript - 如何创建自定义类型数组 typescript

标签 javascript reactjs typescript

我有以下接口(interface):

interface orderItem {
  symbol: string,
  side: string,
  price: number
  quantity: number
}

我想在我的构造函数中创建一个由“orderItems”组成的数组“orders”。

但是, orders : [orderItem] 似乎并不能解决问题。有谁知道我该如何继续?

这是我在构造函数中尝试做的事情:

   this.state = {
      orders: orderItem []

  } 

最佳答案

由于您正在执行对象文字,因此冒号用于将键与值分开(即,它具有其正常的 javascript 含义,而不是其 typescript 含义)。因此,尝试按照您的方式设置类型会导致错误。

有几种方法可以做你想做的事。您可以使用 as 关键字设置类型:

this.state = {
    orders: undefined as orderItem[]
};

或者空数组:

this.state = {
    orders: [] as orderItem[]
};

或者您可以提前创建一些东西,然后将其插入到对象中:

let myOrders: orderItem[] = [];
this.state = {
     orders: myOrders
};

或者您可以为状态创建一个单独的接口(interface)并使用它:

interface myState {
    orders: orderItem[]
}

class myClass {
    private state: myState;
    constructor () {
        this.state = {
            orders: undefined
        }
    }
}

关于javascript - 如何创建自定义类型数组 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756537/

相关文章:

css - 如何在 React Native 中定位下划线文本?

javascript - 使用 onClick 事件渲染 JSX Switch Case

javascript - 如何在javascript中使用promise获取多个图像文件信息

angular - 如何使用 jest 框架模拟异步函数?

javascript - Angular 6 - 服务中的 API 后调用 - 更改为使用 XML

reactjs - redux 工具包使用 typescript 模拟商店

javascript - 使用 create-react-app 创建应用程序时出现 React 和 Bootstrap4 问题

javascript - IE6覆盖分区

javascript - 在 highchart 自定义按钮中添加工具提示

javascript - 使用 Elvis (?) 运算符后,如何使 VSCode 为 .JS 文件保持正确的语法突出显示?