TypeScript:销毁参数时如何为函数参数指定类型?

时间:2019-07-15 09:50:01

标签: typescript

TS崩溃并显示错误:

  

错误:(8,20)TS7031:绑定元素“ on”隐式具有“ any”类型。

     

错误:(8,24)TS7031:绑定元素“子级”隐式具有“任意”类型。

我具有以下功能。我给它传递了两个参数。

// 
function On({on, children}) {
  return (
    <div>{on} {children}</div>
  )
}

在这种情况下如何指定参数类型?此语法不起作用:

function On({(on as boolean), (children as HTMLElement[])}) {
function On({(on: boolean), (children: HTMLElement[])}) {
function On({on: boolean, children: HTMLElement[]}) {
  return (
    <div>{on} {children}</div>
  )
}

2 个答案:

答案 0 :(得分:2)

赞:

function On({on, children} : {on: boolean, children: HTMLElement[] }) {
    // your code
}

如果您有整个对象的类型/接口,也可以使用该类型/接口使代码更具可读性:

interface OnOptions {
    on: boolean;
    children: HTMLElement[];
    someOtherProp: string;
}

function On({on, children} : OnOptions) {
    // your code
}

答案 1 :(得分:1)

请参阅有关Function declarations 的部分

type myType = { on: boolean, children: HTMLElement[]}
function On({on, children} : myType ) {
    // your code
}