如何在带有接口的打字稿中声明函数参数?

时间:2020-11-03 11:59:25

标签: javascript typescript types

我知道在TS中我可以做到:

const myFunc = (choice: string, index: number) => {}

但是我将如何在其中使用接口(就最佳实践而言,我应该这样做吗?)

我想做类似的事情

interface myFuncArgs {
  choice: string
  index: number
}
const myFunc = (choice, index): myFuncArgs  => {}

但是不喜欢这样

我知道对于这种简单情况并没有什么意义,但是如果choice是一个复杂的对象并且我想声明内部所有内容的类型怎么办?内联看起来很难看。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以执行@YevgenGorbunkov在评论中说的话:

const myFunc = ({choice, index}: myFuncArgs): void => {}

或者甚至可以(如果您不喜欢传递对象):

type MyFunc = (choice : myFuncArgs['choice'], index: myFuncArgs['index']) => void

const myFunc : MyFunc = (choice, index) => {

}

Playground.