小编kib*_*ibe的帖子

如何匹配 Typescript 中的类型?

在 F# 中,您可以执行以下操作:

type DeliveredOrderData =
  {
    OrderId: int;
    DateDelivered: DateTime;
  }

type UndeliveredOrderData =
  {
    OrderId: int;
  }

type Order = 
  | Delivered of DeliveredOrderData
  | Undelivered of UndeliveredOrderData
Run Code Online (Sandbox Code Playgroud)

然后我可以创建根据状态返回的函数:

let putOnTruck order = 
  match order with
    | Undelivered {OrderId=id} ->
      OutForDelivery {OrderId=id}
    | Delivered _ ->
      failwith "package already delivered"
Run Code Online (Sandbox Code Playgroud)

我了解了如何在 TypeScript 中创建类型,但是我该如何做与上面相同的事情呢?

const putOrderOnTruck = (order: UndeliveredOrder) => {
  // how can I make sure order is really UndeliveredOrder?
}
Run Code Online (Sandbox Code Playgroud)

pattern-matching typescript

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

pattern-matching ×1

typescript ×1