如何在函数参数中键入提示特定对象



假设我有一个函数:

const someFunc = (input) => {// do something}

我知道输入是一个具有属性thing的对象,即。在函数中,我可以检查input.thing是什么。当我声明函数时,我如何输入提示?我试过这样写:

const someFunc = (input: { thing: string }) => {// do something}

但这似乎行不通。

效果很好。您正在声明第一个参数是一个对象,thing作为必需的字符串。

https://www.typescriptlang.org/play?代码/FAYw9gdgzgLgBFMBbApgMQK4RHAvHACgEsIAHDGALjgG84YALEgc2tgCcW4BfASjwB8tYHFFxw0MABsUAOilhmxMhVmMWvANzBuwRKkzYCNdRFZwA5AxRSFFvsCA

const someFunc = (input: { thing: string }) => {
}

用类型而不是内联来解决这个问题可能会有帮助,因为内联类型看起来有点像解构。

type Input = {
thing: string
}
const someFunc = (input: Input) => {}

您可能希望允许其他键,但需要thing,在这种情况下,您可以将[key: string]: any添加到您的对象。