如何以这种方式读取方法声明(或编译器如何读取它):
add: {(id: number): void}
这就像为type
方法创建add
一样吗?这很奇怪,因为add
这样的内容是带有一个函数的对象。
上下文
interface ComponentProps {
add: {(id: number): void};
}
然后当一些React组件实现这个时,我会写:
<Component add={(item) => {console.log(`Added item ${item}`);} } />
答案 0 :(得分:1)
add
是一个函数字段。我们通常在打字稿中编写函数签名类型的方式是(id: number) => void
,但这是{ (id: number): void }
的简短形式。这两个语法是等效的,都定义了一个具有可调用签名的类型。这种更详细的语法具有允许更多签名的优点:
interface ComponentProps {
add: {
(id: number): void
(id: string, otherParam: number): void
};
}