#666·reselect

在“创建选择器”中输入损失,并将内含函数声明作为单独参数通过

作者: aryaemami59创建于 2023年12月17日更新于 2026年3月18日
标签TypeScript

概览

在使用Reselect的“创建选取器”时,我遇到了影响TypeScript型推论的罕见边缘案例。 这个问题在通过输入选择器作为由内含函数声明组成的单独内含参数时特别出现.

-- -- . . .

详细的行为

  • 工作设想1:** 输入选择器作为单数组中的内置函数声明,效果很好。
  • 工作设想方案2:** 输入选择者作为函数声明通过,作为单独的参数,在`创建选择者 ' 作品之外加以定义。
  • 问题:** 在“创建Selector”中将函数声明作为单独的参数,使TypeScript将结果函数的参数类型解析为“未知的”。

-- -- . . .

复制 复制

** 以下是澄清的不同情况:**

□□□□□ 第一种情况——工作精细:**

选择todoIds = 创建Selector( [ 函数选择待办事宜( 状态: 根态) { 返回状态. 待办事宜; {\fn华文楷体\fs16\1cHE0E0E0} 函数选择Id( 状态: 根态, 代号: 数字) { 返回编号; {\fn华文楷体\fs16\1cHE0E0E0} [ (todos, id) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (三)


* 假想2——工作罚款:**


函数选择待办事宜( 状态: 根态) {
返回状态. 待办事宜;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

函数选择Id( 状态: 根态, 代号: 数字) {
返回编号;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

选择 TodoIds = 创建选择器( 选择todos, 选择Id, (todos, id) )  %
todos.map (todo {} todo.id) (英语).
(三)

□ QQ 有问题的情况 - 结果函数丢失其类型:**

选择todoIds = 创建Selector( 函数选择待办事宜( 状态: 根态) { 返回状态. 待办事宜; {\fn华文楷体\fs16\1cHE0E0E0} 函数选择Id( 状态: 根态, 代号: 数字) { 返回编号; {\fn华文楷体\fs16\1cHE0E0E0} (todos, id) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //❌在这里,todos'和id'都决心采取`未知 ' 类型。 (三)


-- -- . . .

# 影响

虽然这种情况可能不会经常发生,这个问题可能并不常见,但对于可能遇到这种情况的人来说,记录下来很重要.

-- -- . . .

# 工作环绕 #

** 若干简单的研究包括:**

1. 使用箭头函数而不是内含函数声明.
2. 将输入选择器分组到单一阵列中。
3. 在 " 创建者 " 之外界定函数声明。

这两种方法中的任何一种都能解决问题.

-- -- . . .

# 结论

这可能是随着TypeScript的改进而最终消失的问题之一,但用潜在的变通办法将它记录下来可以帮助可能面临类似挑战的其他人。

-- -- . .

内容来源: reduxjs/reselect