我一直在阅读一些用TS编写的React代码,并且遇到了以下代码:
const loggedInRequired = () => (
toState: State,
fromState: State,
// tslint:disable-next-line:no-any
done: any
) => {
// userIsLoggedIn can be whatever you need it to be
if (isAuthenticated()) {
return true;
} else {
// redirect to signin page if the user isn't logged in
done({ redirect: { name: Routes.Login } });
return false;
}
};
我想知道这个特定部分的含义:
() => (someParam: someType, someOtherParam: someType) => { someCodeHere }
第二组括号之间的部分代表什么?它看起来像一个接口,但是我看不到其背后的逻辑,done
显然是一个函数,因为我们稍后在代码中对其进行调用,但是我无法理解该代码的一般含义。
编辑
这只是我的智障。
答案 0 :(得分:2)
这是一个函数(从() =>
开始),它返回另一个函数(另一个从(toState: State, fromState: State,done: any ) =>
开始的函数)。
调用loggedInRequired
时,结果将是一个函数
const loggedInRequiredResult = loggedInRequired (); // will be a (toState: any, fromState: any, done: any) => boolean
const finalResult = loggedInRequiredResult (null, null, null) // will be a boolean