首页 > 解决方案 > 如何在打字稿函数中对参数中的对象进行类型检查

问题描述

我在对函数中的某些参数进行类型检查时遇到问题

function myfun({carengine,cartransmission})
{

   // Some code here

}

我希望输入检查它,所以它是这样的 function myfun({carengine:CarEngine,cartransmission:CarTransmission})

但是,这不起作用。

如何对这些参数进行类型检查?

标签: javascripttypescripttypechecking

解决方案


定义结构化函数参数的类型,例如

interface Car {
  carengine: CarEngine,
  cartransmission: CarTransmission
}

function myfun({ carengine, cartransmission }: Car)
{
   // Some code here
}

打字稿游乐场

如果您已经有一个Car类型并且只想为您的myfun函数指定某些属性,则可以使用Pick

interface Car {
  carengine: CarEngine,
  cartransmission: CarTransmission,
  doors: number
}

function myfun({ carengine, cartransmission }: Pick<Car, "carengine" | "cartransmission">)
{
   // Some code here
}

您也可以内联定义参数类型,但它会很快变得混乱

function myfun({ carengine, cartransmission }: { carengine: CarEngine, cartransmission: CarTransmission })
{
   // Some code here
}

推荐阅读