首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从ngrx@12升级到13后,`store.select()`中的Typescript错误

基础概念

ngrx 是一个用于 Angular 应用的状态管理库,基于 Redux 架构。ngrx/store 提供了 select 方法,用于从 Redux 状态树中选择特定的状态片段。

升级到 ngrx@13 后的变化

ngrx@13 中,store.select() 方法的签名有所变化,这可能导致 TypeScript 错误。

相关优势

  • 类型安全ngrx 提供了强大的类型检查,确保状态管理的类型安全。
  • 可维护性:通过 Redux 架构,状态管理更加清晰和可维护。
  • 性能优化ngrx 提供了选择器的缓存机制,避免了不必要的重新计算。

类型和应用场景

store.select() 方法用于从 Redux 状态树中选择特定的状态片段。常见的应用场景包括:

  • 从全局状态中选择特定的数据。
  • 使用选择器进行复杂的状态计算。
  • 在组件中订阅状态变化。

常见问题及解决方法

TypeScript 错误

ngrx@13 中,store.select() 方法的签名发生了变化,可能会导致 TypeScript 错误。具体错误可能包括:

代码语言:txt
复制
error TS2345: Argument of type 'string' is not assignable to parameter of type 'Selector<any, any>'.

原因

ngrx@13 中,store.select() 方法不再接受字符串作为参数,而是需要使用选择器函数。

解决方法

  1. 使用选择器函数
  2. 使用选择器函数
  3. 更新现有代码
  4. 如果你之前使用字符串作为参数,需要将其替换为选择器函数。例如:
  5. 如果你之前使用字符串作为参数,需要将其替换为选择器函数。例如:

示例代码

代码语言:txt
复制
// selectors.ts
import { createSelector } from '@ngrx/store';
import { AppState } from './app.state';

export const selectUser = (state: AppState) => state.user;

// user.component.ts
import { Component } from '@angular/core';
import { Store } from '@ngrx/store';
import { selectUser } from './selectors';

@Component({
  selector: 'app-user',
  template: `<div>{{ user | json }}</div>`
})
export class UserComponent {
  user$ = this.store.select(selectUser);

  constructor(private store: Store) {}
}

参考链接

通过以上方法,你应该能够解决从 ngrx@12 升级到 ngrx@13 后遇到的 store.select() 中的 TypeScript 错误。

相关搜索:从javascript/typescript中的类返回错误从Typescript中的错误抛出函数推断类型?从Grails 2.2.5升级到4.0.11后出现令人费解的验证错误重命名Next.JS中的Typescript文件后在Vercel上生成错误从DNN 9.1升级到DNN 9.2后,获取Catalust2-H-Trans的皮肤定制错误安装@google-cloud/storage后如何解决Firebase函数中的Typescript类型错误@grapecity/wijmo在将我的Angular项目从8升级到9后抛出运行时错误升级到MacOS Catalina 10.15.7后,parallels下的Visual Studio Node.js中打开的文件太多错误从函数返回对中的unique_ptr后出现分段错误为什么我在定义了PNG类型后,仍然从PNG文件的TypeScript中得到了一个模块找不到错误?java.lang.VerifyError:从4.0.1升级到4.1.1后,安卓4中的f/i/b/f将jxls从2.3.0升级到2.6.0后,模板中的Excel平均值函数无法正常工作从np数组转换后,keras (tensorflow 2.0)中tensorflow数据集数据的形状错误从本地存储中删除项目后出现未处理的拒绝错误。刷新可以修复它在PeopleSoft应用程序从9.1升级到9.2的过程中,创建UPGCUST失败且没有任何错误如何在VScode中制作漂亮的自动格式化程序而不是在添加React后从typescript类型中删除逗号“找不到id为'io.fabric‘的插件”错误。从build.gradle中删除结构后从应用程序中删除观察程序后出现未初始化的常量VideoObserver错误tastypie:PUT不起作用:从请求的数据流中读取后,错误无法访问正文从.net- dotnet.exe -2.2升级到.net-core-3.1后,我发布的应用程序的输出目录中的核心是什么?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

新发布 TypeScript 3.5 RC 作出改进和优化

微软官方发布公告得知: 我们类型系统来了成本 ——我们期望编译器所做工作需要被转换为更长编译时间。...不幸是,为了修复 TypeScript 3.4 某些错误,我们意外地引入了一个回归,这可能会导致类型检查器工作量增加,从而延长了类型检查时间。那些使用样式组件库用户受到影响最大。...新增内容 TypeScript 3.4 候选版本添加了几个可能会在最终版本中新增内容: Omit 辅助类型:以前,用户通过自己去定义 Omit 来省略对象某些属性。...用户在GitHub上需求反馈(https://github.com/Microsoft/TypeScript/pull/30552)要求将此功能添加到新版本,并且要求 TypeScript 用 Omit...发布候选版本还有许多破坏性变化需要注意。确保升级到候选版本不会破坏你代码!

85040
  • RustLang语义版本控制仍然破坏了太多应用程序

    在自动构建环境错误版本化软件包构建可能会造成严重破坏,一位 Rust 开发人员在 Changelog 播客中指出。...他曾在另一种语言 Typescript 中使用过 SemVer,并发现了类似的问题。 “谁来决定是错误修复还是重大破坏?你并不总是知道,”他说。“语义听起来不错,但导致破坏性更改定义变得模糊。”...TypeScript 方法更像是将每次更改都视为潜在破坏性更改,即使是错误修复。...有些软件项目将下一个版本升级到主要版本,仅仅是为了主要版本获得营销优势 (来自贸易出版物免费宣传)。 Krycho 建议,也许我们需要将软件营销版本作为完全不同东西。...即使是 Linus Torvalds,Linux 守护者,也 将 Linux 2.6 升级到版本 5,仅仅是因为次要修订数量超过了他可以用手指和脚趾计算范围。

    9210

    WebStorm 2020.3新版:增强Vue支持,新增交互提示与嵌入式监视

    以前,您Watches保存在“Debug”工具窗口“variable”选项卡下。当您单步执行代码并移至其他上下文时,Watches可能会变成错误。...我们进行了此更改,以简化WebStormUI,并帮助您从一个地方查看代码所有关键问题。...现在,可以在“Probelm”工具窗口“Project Errors”选项卡下找到该服务报告所有错误。...使WebStorm默认打开特定文件 v2020.3开始,使WebStorm成为打开特定文件类型默认应用程序变得更加容易。...升级到较新版本IDE时,所选文件扩展名关联将保持不变。 今天内容就到这里,如果你想了解更多功能以及文章教程,点击免费获取!

    4.3K10

    Pandas 2.2 中文官方教程和指南(十·二)

    您可以通过指定where有选择性地删除。...不支持重复列名和非字符串列名 不支持对象数据类型列实际 Python 对象。在尝试序列化时,这些将引发一个有用错误消息。 查看完整文档。...对于其他驱动程序,请注意 pandas 查询输出推断列 dtype,而不是通过查找物理数据库模式数据类型。例如,假设userid是表整数列。...如果列头行字段数等于数据文件主体字段数,则使用默认索引。如果大于,则使用前几列作为索引,以使数据主体字段数等于列头中字段数。 表头第一行用于确定列数,这些列将进入索引。...由其他错误引起错误行将被静默跳过。

    29300

    TypeScript 4.1 发布,新增模板字面量类型

    TypeScript 团队警告说,这个模式应该谨慎使用,避免递归类型检查速度变慢,而且如果超出了受支持递归深度,TypeScript 编译器将会抛出编译时错误。...在升级到 TypeScript 4.1 时,需要考虑以下几个重大变更: 内置 lib.d.ts 自动生成 DOM 类型行为发生了变化,并移除了 Reflect.enumerateAPI,因为 ES2016...类 abstract 成员不再被标记为 async。调用者只关心返回类型,因此不再存在将 abstract 成员指定为 async 值。 any 和 unknown 类型现在会在错误位置传播。...TypeScript 4.2 相关工作已经在进行,预计将于 2021 年 2 月完成。...TypeScript 4.2 内容包括广义索引签名、元组类型前 / 剩余元素、--noImplicitOverride、--noPropertyAccessFromIndexSignature、

    2.5K20

    TypeScript 2.6 来了!

    这些类型不只是帮助捕捉拼写错误、逻辑错误这类错误,他们也可以给你带来更好工具像编辑自动补全,更方便代码库导航,等等其他功能。...这意味着只有有影响文件将经历一个树状变换流程(将代码 TypeScript 编译到 ES2016、ES2015、ES5,到 ES3 过程),以及发布流程(打印出编译文件本身)。...将 JSDoc 重构成 TypeScript TypeScript 现在提供了 JSDoc 注释添加参数一个重构方式。...自动 @types 安装 编辑器不久将会提供一个快速修复方案来给没有类型化引用安装类型定义。 重大变化和反对 有几个小变化可能影响您代码。...在更高级场景下,我们计划在TypeScript 2.7把 symbolToString 升级到全功能 SymbolDisplayBuilder。

    1.1K20

    TypeScript 开发 Node.js 程序

    ---- 首先在 TypeScript 可能有一千种或更多种不同方法去创建 Node.js 应用程序。我只是想展示自己喜欢方式。...Package.json 就像我之前说过,有很多方法可以做到这一点。我喜欢将 Webpack 用于 TypeScript 项目。但首先要做创建一个 package.json 开始。...为了帮助调试,需要在开发模式运行,用 devtool 字段来指示我们想要源映射。这样,如果出现错误,可以很容易地在代码中找到它出现位置。...程序 我们仍然需要将 JavaScript 文件扩展名 .js 改为.ts。让我们这样做并尝试运行项目。 运行项目,可以立即看到我们在创建测试应用程序犯了“错误”。...最后注意事项 我确信在 TypeScript 中有数千种不同方法来编写 Node.js 应用程序。我所写下绝不是你必须要照样做方式,这只是你可以做到方式一种。

    2.4K30

    Java 近期新闻:JDK 21 序列集合、JDK 20 向量 API、Gen ZGC、Hilla 2.0

    要了解关于这个版本更多细节,请查看发布说明。 JDK 21 JDK 21 早期访问构建Build 13 也于上周发布,其中包括来自 Build 12 更新,该更新修复了各 问题。...2.0;通过移除未部署工件来清理 Helidon BOM;文档删除了将指标服务器传播到客户端说明。...包 JavaBeans 支持实现;在 NIO2 异步操作恢复内联状态,解决实现抛出意外异常。...JobRunr JobRunr 6.1.1 发布,修复了两个 Bug:使用JobLambda接口执行重复作业时错误;在使用 Yasson 时,由于作业 JSON 缺少属性而导致NullPointerException...这是一个整合了 Spring Boot Java 后端和响应式 TypeScript 前端开源框架。

    1.7K20

    Angular 11 正式发布,放弃对IE 9、10支持!

    首先,比较受大家关注两点就是: 1、Angular 11.0.0 将放弃对TypeScript 3.9支持,转而升级到 TypeScript 4.0。...,并保证对那些新提出问题在两周之内进行处理,在这个过程解决了一些有关 router 和 forms 热门问题。...(5) 更新语言服务预览(Updated Language Service Preview) 语言服务当前基于视图引擎逐渐转变 , 更新语言服务为开发人员提供了更强大、更准确体验。...: $ ng serve --hmr 在开发过程,对组件、模板和样式最新更改也将立即更新到正在运行应用程序。...(7) 更快构建速度(Faster Builds) 使用 TypeScript v4.0之后让编译变得更快速。安装依赖项时,ngcc 更新过程也将提高 2-4倍速度。

    2K20

    前端食堂技术周刊第 58 期:TypeScript 4.9 RC、10 月登陆浏览器新功能、100 天 CSS 挑战

    技术资讯 1.TypeScript 4.9 RC[2] 自 4.9 Beta 以来新东西: 以下内容并没有在 Beta 版本博文中提及: Class 自动访问器 (accessor 关键字)[3...()[10] 滚动到文本片段[11] 支持 AVIF[12] 支持 Web Push[13] 3.Turbopack 真的比 Vite 快 10 倍吗?...3 支持 node:test module node:前缀核心模块 Web Streams API 全局 API:Blob、BrodcastChannel V8 升级到 10.1 升级工具链和编译器...周刊一锅端 如果大家还没看过瘾,给大家推荐一下食堂技术周刊合作伙伴,赶快把他们也抱入碗吧~ 前端早早聊 18 个成长宝藏库[22]:前端早早鸟,前端早早跑 MDH 前端周刊[23]:大厂一线 P8...4.9 RC: https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-rc/ [3] Class 自动访问器 (accessor

    56420

    PyCharm Professional 2024.2激活新功能!最新体验,震撼来袭!

    您还可以识别计算机上安装未使用模型,并删除它们以直接 IDE 释放磁盘空间。...更新调试器为字符串变量提供格式正确可视化效果,这些字符串以 JSON、XML、HTML、JWT 和 URL 编码。...框架和技术 GraalJS 作为 HTTP 客户端执行引擎 我们已将 HTTP 客户端中使用 JavaScript 执行引擎升级到 GraalJS。...增强 Terraform 支持 我们增强了 PyCharm Terraform 支持,包括全行代码补全、改进上下文感知代码补全、更精细语法高亮显示,以及更好错误检测和快速修复建议。...能够直接运行和调试 TypeScript 文件 现在,您可以从不同入口点运行和调试 TypeScript 文件,包括文件上下文菜单、运行小部件和当前文件配置。

    1K10

    Java 近期新闻:字符串模板、Quarkus、Open Liberty、PrimeFaces、JobRunr、Devnexus

    作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 OpenJDK JEP 430(字符串模板预览版)已经 JDK 21 Candidate 状态提升到 Proposed...它提议用字符串模板(包含嵌入式表达式字符串字面量)来增强 Java 编程语言。字符串模板在运行时进行解释,即对嵌入式表达式进行计算和验证。评审预计将于 2023 年 4 月 13 日结束。...Quarkus Quarkus 3.0.0 第 2 个候选版本提供新特性包括:Gradle 任务quarkusUpdate,用于将 Quarkus 升级到新版本;Dev UI 2 现在默认通过/q...PrimeFaces PrimeFaces 12.0.4 修复了一些 Bug,并提供了一些新特性:恢复了CurrencyValidator类定义getExcelPattern()和validate...Gradle Gradle 8.1 第 3 个候选版本带来了一些新特性,包括:对配置缓存持续改进;支持依赖关系验证;改进 Groovy 闭包错误报告;支持 Java lambdas;支持使用 JDK

    1.6K30
    领券