Typescript 我可以在函数声明中使用现有类型/接口吗?

Typescript 我可以在函数声明中使用现有类型/接口吗?,typescript,Typescript,我想对功能组件使用React的类型定义,如下所示: const SearchItem: React.FC<ISearchItemProps> = props => {} SearchItem.name // '' 但这需要复制名称 有没有办法在函数声明中指定类型?例如: function SearchItem/* React.FC<ISearchItemProps> */(props) {} 函数SearchItem/*React.FC*/(props){}

我想对功能组件使用React的类型定义,如下所示:

const SearchItem: React.FC<ISearchItemProps> = props => {}

SearchItem.name // ''
但这需要复制名称

有没有办法在函数声明中指定类型?例如:

function SearchItem/* React.FC<ISearchItemProps> */(props) {}
函数SearchItem/*React.FC*/(props){}

有一个简单的方法,您只需要这样做:

function SearchItem(props): React.FC<ISearchItemProps> {}
函数搜索项(props):React.FC{}

这意味着您的函数将有一个类型为
React.FC

的返回值,我认为您将不得不复制一些内容,因为TypeScript。相反,您必须分别注释参数和返回类型。使用标准和实用程序类型,以下是最简洁的:

type RFC = React.FC<ISearchItemProps>;
function SearchItem(...args: Parameters<RFC>): ReturnType<RFC> {
    return null!; // or whatever it's supposed to return
}

console.log(SearchItem.name) // SearchItem
类型RFC=React.FC;
函数SearchItem(…参数:参数):ReturnType{
返回null!;//或者它应该返回的任何内容
}
console.log(SearchItem.name)//SearchItem
这可能比您原来的
const SearchItem:…=函数SearchItem(…)
语法,所以我可能建议您坚持使用它

希望有帮助;祝你好运


这意味着
SearchItem
将返回一个组件,这不是我的意图。查看这行代码
const SearchItem:React.FC=function SearchItem(props){}
,我假设您的
SearchItem(props){}
将返回一个FC,因为它是const
SearchItem
所期望的类型。不是这样吗?不,
SearchItem
是一个
React.FC
,不是一个返回
React.FC
.Hym的函数,很有趣。你能告诉我你在哪里使用SearchItem吗。我刚看了一眼,就看到了一个名字。如果你使用它,比如名字应该是可见的。或者你可以做
函数SomeComponent(props:React.PropsWithChildren){}
但是正如我提到的,我看不到原始的problem@MaciejSikora这个问题是关于TypeScript的,我用React代码提供了一个例子。@MaciejSikora我编辑了这个问题来澄清。
type RFC = React.FC<ISearchItemProps>;
function SearchItem(...args: Parameters<RFC>): ReturnType<RFC> {
    return null!; // or whatever it's supposed to return
}

console.log(SearchItem.name) // SearchItem