这是一种什么功能?

ulmd4ohb  于 2022-09-18  发布在  Java
关注(0)|答案(3)|浏览(137)

最近我看到了这个功能。我特别指的是这一行/语法:

export const selectItemBySpecificId = (id: string):any => createSelector(

这是一种什么功能?

我知道这样的函数:函数doSomething(){...}//函数延迟语句

让DoSomething=Function(){..}//函数表达式

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions

完整示例(它是带参数的NgRx选择器):

export const selectItemBySpecificId = (id: string):any => createSelector(
    selectAllItems,
    (data: any) => {
        const result = data.filter((item: IItem) => iem.id === id);
        if (result.length >= 1) {
            return result[0];
        }
        return null;
    }
);
xe55xuns

xe55xuns1#

这是一个用打字稿编写的箭头函数。在运行时,类型将被移除,其工作方式类似于export const selectItemBySpecificId = (id) => createSelector(...);export function selectItemBySpecificId(id) { createSelector(...) }。在编辑器中或在使用tsc时,id: string将要求id参数的类型为字符串,而: any意味着函数可以返回任何类型的类型,并且不会进行检查(就像普通的JS一样)。

bsxbgnwa

bsxbgnwa2#

这是一个箭头函数
箭头函数表达式是传统函数表达式的紧凑替代方案,但受到限制,不能在所有情况下使用。

这是在js中定义函数的另一种方式它有一些不同之处在于它处理(这)js函数的其他功能的方式在MDN文档中阅读更多关于它的信息以更好地理解它,因为您将经常使用它Read More

一些关键的区别

  • Arrow函数没有自己的This、Argument或Super绑定,不应用作方法。
  • Arrow函数无权访问new.Target关键字。
  • 箭头函数不适合调用、应用和绑定方法,这些方法一般依赖于建立作用域。
  • 箭头函数不能用作构造函数。箭头函数不能在其主体内使用Year。
ajsxfq5m

ajsxfq5m3#

除了已经给出的答案,我们显然有一个更高的function``createSelector,这里的e1d2d1是function

const selectItemBySpecificId = (id) => createSelector(/* ... */);
//                                     ^^^^^^^^^^^^^^
//                          function that returns a function

相关问题