【发布时间】:2021-12-08 07:19:49
【问题描述】:
我希望将以下签名的内联函数转换为非内联函数
const onMouseEnter = (itemName: string): void => {
alert(itemName);
};
我尝试如下操作,但似乎不起作用。
function onMouseEnter(itemName: string) {
alert(itemName);
};
这是我的代码框,它没有使用上面的签名进行编译。
https://codesandbox.io/s/frosty-buck-wt66b?file=/src/App.tsx
【问题讨论】:
-
对我来说似乎工作正常......
-
@jnpdx,嗯,取消注释行 onMouseEnter={onMouseEnter2('title')} 时你没有看到编译错误
-
啊,现在我明白你的意思了——我假设你想按照问题中的描述将
const onMouseEnter更改为function onMouseEnter。你可能想澄清一下。你不能传递一个带有参数的函数,就像你在注释行中尝试做的那样,除非结果反过来返回另一个函数。 -
@jnpdx,“除非结果反过来返回另一个函数”。你能告诉我这个函数是什么样子的吗?我尝试创建一个返回 lambda 的函数,但没有成功。
-
const onMouseEnter2 = (itemName: string) => () => { alert(itemName) };
标签: reactjs typescript lambda anonymous-function inline-functions