typescript - 仅为对象的某些属性创建类型
问题描述
有没有办法只为对象的某些属性指定类型而不是全部?例如,如果我有一些对象
const user_account = {id: 37593, created: "23/04/2020", last_active: "23/04/2020"};
我只想指定id
为 type number
,而其他所有内容都保留为any
,有没有办法做到这一点?谢谢。
解决方案
您可以使用字符串索引签名来表示所有属性都符合特定的值类型;在你的情况下,any
。您添加到索引签名之外的对象的任何命名属性仍必须符合该类型,但您可以使它们更具体。由于number
比 更具体any
,您可以像{ [k: string]: any; id: number }
.
所以
const settings: { id: number, [k: string]: any } =
{id: 37593, created: "23/04/2020", last_active: "23/04/2020"};
应该适合您,具体取决于您的用例。请注意,这样的注释会将 的类型扩大settings
到带注释的类型,因此编译器不会记住该类型中未指定的任何内容:
settings.id; // known to be number
settings.created; // only known as any, not string
settings.randomPropName; // also known as any
好的,希望有帮助;祝你好运!
推荐阅读
- ios - “'MySwiftFile' 没有可见的@interface 声明选择器'****'”在 iOS 框架中
- bash - 编辑不同行导致的 Git 绕过冲突
- azure - 如何在 Azure AD 中查看 Azure 服务主体组成员资格?
- r - 为什么当我在 RStudio 中使用 Airquality 时会显示“x 必须是数字”的错误
- oauth-2.0 - 如何按会话对用户的 access_token 进行分组?
- python-3.x - 使用python打印图像文件
- python-3.x - Django post_save 不触发但 post_delete 在同一个 signals.py 文件中
- schema - 交易卡游戏卡的结构化数据模式类型
- r - 如何在 shinyapps.io 应用程序中安装自定义字体?
- sql-server - 如何为 SQL Server 数据库创建脚本从任何状态创建/升级