打字稿用只读属性初始化对象

2023-11-21

有没有办法初始化对象文字并同时声明其具有只读属性的接口?

例如

let a = { readonly b: 2, readonly c: 3 }

您可以使用as const断言:

let a = { b: 2, c: 3 } as const // typed as { readonly b: 2; readonly c: 3; }
a.b = 2 //Cannot assign to 'b' because it is a read-only property.

如果你只希望某些道具是只读的,那是不可能的,你能做的最好的就是使用Object.assign一部分包含只读属性,另一部分包含可变属性:

let a = Object.assign({ b: 2, c: 3 } as const, {
  d: 0
});
a.b = 2 // err
a.d = 1 //ok
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打字稿用只读属性初始化对象 的相关文章

  • `type Constructor = Function and {prototype: T }` 如何应用于 TypeScript 中的抽象构造函数类型?

    TypeScript 中有一个关于抽象构造函数类型的问答 这是我想知道答案的问题 TypeScript 中的抽象构造函数类型 https stackoverflow com questions 36886082 abstract const
  • 如何同时模拟Pinia和vue-i18n?

    我正在使用 Vue 3 的 Composition API 如下所示 store ts import ref Ref from vue import defineStore from pinia export const useStore
  • 具有相同父布局角度的功能模块路由

    我想使用相同的布局 在应用程序模块 ts 对于不同的功能模块 每个模块都有自己的路由 以及一个单独的登录 注册布局 没有侧面菜单 页眉和页脚 到目前为止我尝试过这个 app app component html
  • 使用 @nomiclabs/hardhat-waffle 实现装置

    在官方华夫饼文档中 您可能会找到实现装置的下一种方法 import expect from chai import loadFixture deployContract from ethereum waffle import BasicTo
  • 从联合类型映射多个兼容类型

    我正在开发一个应用程序 我们已经定义了一个类型 并且需要从该单个接口中推导出多个接口 Example 我们的主要类型看起来像这样 该类型是否定义为映射类型或联合类型并不重要 因此最简单的解决方案都是最好的 type A type A inp
  • 使用 Object.entries() 时保留键类型

    这是我的问题的一个例子 ts 游乐场演示 https www typescriptlang org play code C4TwDgpgBAKg1hEUC8UDkAzA9ltUA 6ARgIYBOehaAJhBiQK4A2wA0omgFCc
  • 如何在 .tsx 打字稿中包含 .css 文件?

    如何在 tsx 中包含 css 文件以及如何使用它 即我如何渲染静态文件 import as React from react import Header from header import home css export class H
  • “未知”与“任何”

    TypeScript 3 0 引入unknown根据他们的 wiki 输入 未知现在是保留类型名称 因为它现在是内置类型 根据您对未知的预期用途 您可能需要删除 完全声明 有利于新引入的未知类型 或者 将其重命名为其他名称 有什么区别unk
  • Angular 没有 NameService 提供者

    我在将类加载到 Angular 组件中时遇到问题 我已经尝试解决这个问题很长时间了 我什至尝试过将所有内容合并到一个文件中 我所拥有的是 应用程序 ts
  • ionic2 对菜单项应用 ngx-translate

    我正在使用 ngx translate 来支持多语言 并且运行良好 但我也想申请菜单项 我该如何实现这一目标 我有 3 个菜单项 我想更改每个标题的语言 ts file appPages PageObj title Profile comp
  • “ReactNode”不是有效的 JSX 元素

    我有以下代码 代码沙箱 https codesandbox io s react typescript forked 50beyp file src App tsx import ComponentType ReactNode from r
  • 在从命令行运行的 NestJS 脚本中使用服务

    我知道如何从命令行运行脚本 使用npm or npx ts node script ts 正如所述here https stackoverflow com questions 60704316 run nestjs script from
  • Typescript 找不到模块

    我在 Typescript 的一个文件 upload ts 中有一个导出的模块 我无法在没有错误的情况下导入到另一个文件 application ts 中 另外 我无法导入 ExpressJS 这是Upload ts
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • 从回调中访问状态

    我在从回调访问组件状态时遇到问题 国家的价值num更改正确 但此类更改对于加载时定义的回调函数不可见 import React useState from react class MyObject callback gt void cons
  • 通过扩展和实现的组合来理解 TS 的类型推断/缩小

    我有以下示例代码 class B implements Error name string message string stack undefined string function Foo x any if x instanceof E
  • 类型 {} 上不存在 Typescript 属性

    我有以下代码打字稿 为什么编译器会抛出错误 var object Object defineProperty object first value 37 writable false enumerable true configurable
  • Angular 2 和 TypeScript 的承诺

    我正在尝试使用routerCanDeactivate我的应用程序中的组件的函数 简单的使用方法如下 routerCanDeactivate return confirm Are you sure you want to leave this
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco

随机推荐

  • 如何为 Karate API 中的所有功能文件设置全局标头

    我需要发布一个请求来获取授权令牌并将其包含在所有后续测试请求的标头中 该令牌每次都会更改 但只要我继续发送请求 它就对整个测试会话有效 在每个功能文件中 我可以调用另一个功能文件来获取此令牌 但我不想对每个功能文件都这样做 我只想在测试开始
  • Visual Studio 不断要求将项目文件另存为

    我正在使用 VS 2010 最近我移动了一些文件并更改了路径等 该解决方案仍然可以正确编译 并且所有文件都可以毫无错误地加载 编译 但是几乎每次我在更改后进行编译时 它都会显示 另存为 对话框 并要求我保存其中一个项目 如果我尝试这样做 给
  • 使用pycharm调试,如何单步进入项目,而不进入django库

    想想这个场景 我调试 Django 项目并单步执行代码 进出 调试器有时会进入 Django 库或其他外部库 有谁知道如何防止调试器输入外部代码 或者至少迈出 大 一步让调试器返回到项目代码 有谁知道如何防止调试器输入外部代码 是的 德米特
  • Restangular 是否支持 withCredentials 选项和 cors 请求的其他选项?

    我正在谷歌搜索 但没有找到任何线索 矩形是否支持凭证选项以及 cors 请求的其他选项 我的意思是我可以在 cors 调用中使用它而没有任何问题吗 你能帮我吗 是的 它确实 您可以通过使用来设置它们setDefaultHttpFields
  • 不同 Logback 附加程序的特定于包的日志记录级别

    我有这个简单的 Logback 配置文件 其中包含两个附加程序和一些基于包名称的自定义日志记录级别
  • 点符号与 $elemMatch

    我有一个 unitScores 集合 其中每个文档都有一个 id 和一个文档数组 如下所示 id ObjectId 52134edd5b1c2bb503000001 scores userId ObjectId 5212bf3869bf35
  • PHPStorm 中是否可以实现 Ruby 语法高亮显示?

    I found this但老实说不确定如何安装它或它是否适用 谢谢 您链接的 Ruby 插件仅为 IntelliJ IDEA Ultimate 设计 它不适用于 PhpStorm 看这个答案更多细节 但是 可以使用 PhpStorm 中的
  • 在循环之前或循环中声明变量之间的区别?

    我一直想知道 一般来说 在循环之前声明一个一次性变量 而不是在循环内重复声明 是否会产生任何 性能 差异 A 完全没有意义 Java 中的示例 a 循环前声明 double intermediateResult for int i 0 i
  • 确定 GAM 平滑对象的导数

    我有一个非常简单的时间序列数据集 由单个变量的年平均值 AVERAGE 组成 我希望研究时间序列 趋势 分量的变化率 一阶导数 和加速度 二阶导数 以及相关的标准误差 我使用 MGCV 的 GAM 和 PREDICT 函数获得了 趋势 如下
  • 核心数据内存使用和内存警告

    我有这个问题 我在核心数据中有一个图像数据库 我获取所有图像 大约 80MB 并放入 NSMutableArray 中 对象被正确错误 NSArray fetchResults self managedObjectContext execu
  • Unity PerRequestLifetimeManager 在不同请求中重用对象

    我已经为我们的项目设置了 Unity 的依赖注入 该项目本身是一个同时使用 MVC 和 Web API 的 ASP NET 应用程序 对于数据库上下文 我正在使用PerRequestLifetimeManager 这样做是为了使业务逻辑的不
  • wpf - 我可以在 wpf 中使用 System.Drawing 吗?

    我正在将图像保存在数据库中 但是如何从数据库中检索该图像 当我尝试使用system drawing 它显示错误 一些人说我不能在wpf中使用system drwaing 甚至不能使用dll文件 我的代码是 private void btnS
  • 子 pom 中存在重复的artifactId

    我希望父 pom 为众多子 pom 定义一些要继承的属性 但是 当我尝试在父 pom 中的这些属性之一中使用 artifactId 时 它会在子项的有效 pom 中重复 下面是非常基本的示例 假设我拥有 poms 所需的所有有效字段 gro
  • ModelSim-Altera 错误

    我正在使用 Ubuntu Linux 14 04 LTS 和 Altera Quartus 15 0 网络版 由于许可错误 我很难模拟我的设计 我正在设计一个 LCD driverVEEK MT友晶科技的液晶触摸屏旋风 IV EP4CE11
  • 如何使用freopen_s函数

    为了从文本文件读取输入 我编写了以下代码 int main int x ifndef ONLINE JUDGE freopen input txt r stdin endif scanf d x printf d n x system pa
  • 为什么“git clone”不采用 refspec?

    看来很多人都去换了git clone与组合git init git fetch 这看起来相当愚蠢 不幸的是像 Jenkins 这样的工具不会为你做这件事 那么为什么 git clone 不像 git fetch 那样采用 refspec 呢
  • 如何在 Ruby 中获取 Enumerable 的第 n 个元素

    例如 要返回第 10 000 个质数 我可以编写 require prime Prime first 10000 last gt 104729 但是创建一个巨大的中间数组 只是为了检索它的最后一个元素感觉有点麻烦 鉴于 Ruby 是一种如此
  • 强制调用父方法

    是否有 或模式 强制调用父方法 我有一个像这样的抽象类 abstract class APrimitive public function validate Do some stuff that applies all classes th
  • 多个main方法有什么用?

    c 使我们能够使用方法定义多个类 Main方法是程序执行的入口点 那么为什么我们要拥有多个地方来执行程序呢 多个 main 方法相对于单个 main 方法有什么优点 Edit 示例 cs Class Example 1 public sta
  • 打字稿用只读属性初始化对象

    有没有办法初始化对象文字并同时声明其具有只读属性的接口 例如 let a readonly b 2 readonly c 3 您可以使用as const断言 let a b 2 c 3 as const typed as readonly