Typescript 实现具有相同键但不同类型的接口

2023-11-26

我有一个界面

export interface Foo {
 a: string;
 b: string;
}

我现在想要另一个类,它实现接口的所有键,但可以有另一种类型:

  export class Bar implements keysof(Foo) {
    a: SomeNewType;
    b: SomeNewType2;
  }

这在打字稿中可能吗? 背景:我想要Bar类的键要同步Foo


您可以使用键映射来完成此操作。

export interface Foo {
  a: string;
  b: string;
}

type HasKeys<T> = {
  [P in keyof T]: any;
}

export class Bar implements HasKeys<Foo> {

}

这会抱怨Bar不见了a and b但如果你用任何类型定义它们就可以了。 IE。

export class Bar implements HasKeys<Foo> {
  a: number;
  b: object;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Typescript 实现具有相同键但不同类型的接口 的相关文章

  • 有没有办法在打字稿中自动生成 Azure Functions 的 swagger 文档?

    我在我的项目中使用带有 azure 函数的打字稿和节点 我想为我的项目自动生成 openAPI 定义文件 而不是手动创建一个 我看到了https www nuget org packages Aliencube AzureFunctions
  • TypeORM 插入带有外键的行

    我之间有 OneToMany 关系聊天室1 M gt 留言我遇到的问题是 每当我尝试插入一条消息 或大量消息 时 ChatRoom 的外键为空 此外 我正在上传我的设置 Entity messages export class Messag
  • Rxjs 带延迟功能的重试

    我正在尝试使用retry with delay函数 我预计函数会在 1000 毫秒延迟后调用 但事实并非如此 这里可能会出现什么错误 查看控制台输出 同一时间 16 22 48 我预计有 16 22 48 16 22 59 canCreat
  • Typescript 递归地更改属性类型

    如何递归地改变属性类型 我只能在单一维度上做到这一点 从实用程序类型 https github com piotrwitek utility types似乎有可能实现这一目标 我已经尝试过多次但无法做到正确 type Convert
  • Typescript 在 VS2012 中无法正确编译

    没有明确的原因 Typescript 突然停止可靠地编译成 JS 代码 使用 VS2012 Typescript for VS 版本 0 8 3 1 和 Web Essentials 版本 2 6 设置为 保存时编译 我可以创建一个新的 T
  • TS1128:预期声明或声明(文件结尾)

    我正在开发一个 TypeScript React 项目 刚刚习惯它 已经一年没有写过 React 了 等等 并且遇到了一个问题 当我编写此组件时 我遵循了我找到的一些文档 但我在此文件末尾收到 TS1128 预期声明或声明 错误 我无法弄清
  • Observable:如果前面有map(),为什么不会导致subscribe()成功?

    我参考这个post https stackoverflow com questions 34671715 angular2 http get map subscribe and observable pattern basic unders
  • 复选框警报控制器 - 添加 3 个按钮

    我用 IONIC 2 Beta 版本制作了一个应用程序 我正在使用复选框警报控制器 并添加两个按钮 确定 和 取消 现在我需要在警报控制器中再添加一个按钮 我在下面实现了添加一个按钮 alert addButton Cancel alert
  • 从版本 14 更新到 15 后,Angular $localize 错误

    从版本更新我们的 Angular 应用程序后14 0 4到版本15 1 3 之前也尝试过15 1 2 我们在尝试访问该应用程序时收到以下错误 Uncaught Error It looks like your application or
  • 打字稿 keyof 返回字符串数组

    假设我有一堂课 class Test propA propB propC 我想创建一个返回字符串数组的方法 并将其键入为仅 Test 类中存在的键 我该如何使用keyof特征 class Test propA propB propC get
  • 如何为 Angular 4、5 中的动态元素分配哈希 ID ref id

    如果我的问题很愚蠢 我很抱歉 我有 30 多个静态 ng container 和一些独特的静态 hashtagID 但我想在 ngFor 的帮助下动态创建它们 public lists food book cook 期望输出
  • “未知”与“任何”

    TypeScript 3 0 引入unknown根据他们的 wiki 输入 未知现在是保留类型名称 因为它现在是内置类型 根据您对未知的预期用途 您可能需要删除 完全声明 有利于新引入的未知类型 或者 将其重命名为其他名称 有什么区别unk
  • 更改 ag-grid 上的页面和缓存块大小会导致项目无限加载

    我希望使用 ag grid 的 服务器端 模式重新获取每个页面的数据 为了做到这一点 我将 maxBlocksInCache 1 和 cacheBlockSize 设置为等于每页的项目数 到这里为止一切正常 现在 当我更改每页的项目数时 网
  • React Typescript:从文件输入获取文件

    我得到的错误是Property files does not exist on type ChangeEvent
  • “ReactNode”不是有效的 JSX 元素

    我有以下代码 代码沙箱 https codesandbox io s react typescript forked 50beyp file src App tsx import ComponentType ReactNode from r
  • 如何在 package.json 中对嵌套子模块和 TypeScript 使用“导出”?

    我想利用新的优势 出口 https nodejs org api packages html packages exportsNode js 的功能package json这样我就可以执行以下操作 exports dist index js
  • Svelte:无法识别导入的 TypeScript 文件

    我正在尝试使用 Rollup 使用 Svelte 和 TypeScript 构建一个应用程序 当我尝试构建我的 Svelte 组件时 我似乎无法让它编译我的 ts包含的文件 svelte成分 我不断收到此错误 Error Unexpecte
  • 角度2中未定义的值

    我正在创建一个应用程序 在其中使用 Ag Grid api 在网页上列出我的数据库内容 Ag grid 有一个预定义的 api 来获取所选行的内容 这是我的代码 export class customer entryComponent pu
  • D3、TS 和 Angular 2

    我正在尝试将 D3 v4 与 Angular 2 Typescript 一起使用 我目前正在研究 D3 v4 我能够遵循 stackoverflow 中类似问题的一些答案 但没有成功 我已经导入了大部分 D3 库及其类型 我使用的是 TS
  • 想要动态处理与分页相关的页码显示:ReactJS

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

随机推荐

  • 在运行时更改区域设置时刷新(重新创建)返回堆栈中的活动

    我有一个活动说ActivityMain从这个活动我转移到另一个名为ActivitySettings在设置活动中 我通过单击按钮更改应用程序区域设置 并使用重新创建实现了当前活动中所需的更改 但是当我按回时 我的 ActivityMain 将
  • 如何使用 LOAD DATA INFILE 将选定的列从 CSV 文件插入到 MySQL 数据库

    我有一个包含 10 列的 CSV 文件 我只想从该文件中选择一些列并使用以下命令将它们加载到 MySQL 数据库中LOAD DATA INFILE命令 将数据加载到 MySQL 中的表中并指定列 LOAD DATA LOCAL INFILE
  • 将Xcode项目推送到GitHub时的身份验证问题

    当我想通过 Xcode 将项目推送到 GitHub 时遇到了问题 注意 我这里说的不是终端 我必须为我团队中的艺术家设置 Xcode 环境 终端对他不起作用 我一开始尝试使用 HTTPS 地址 https github com zeroli
  • 识别应用程序是否存在,如果不存在则转到 Play 商店

    有点傻 我想知道的是 如果设备上不存在应用程序 是否可以进入游戏商店下载它 我知道我需要将此代码放入 Intent i getPackageManager getLaunchIntentForPackage com package addr
  • Safari 错误 kCFErrorDomainWinSock:10054

    我在 Windows 上安装了 safari 版本 5 1 7 并在 https windows 服务器上托管了 js 文件 该网站工作正常 但我无法在 Safari 浏览器中查看 javascript 文件 现在问题已经解决了 该问题与
  • Android Eclipse 模拟器问题:将 WVGA(hdpi) 作为 mdpi 屏幕运行

    我遇到的问题是 当我运行 FWVGA 或 WVGA 大小的模拟器时 它有时会以 MDPI 大小而不是 HDPI 运行 这是一个带图片的例子 http wonton games blogspot com 2010 06 emulator pr
  • 单页应用程序和 RESTful API

    真正的 RESTful API 利用超媒体 以便客户端仅依赖服务器提供的动态超媒体来浏览应用程序 该概念称为HATEOAS 这个概念很容易适用于 Web 应用程序 但如何将其应用到单页应用程序 因为 SPA 通常在内部管理其状态 就导航而言
  • 为什么 C++ 标准库中没有 std::thread_pool ?

    我觉得奇怪的是 尽管有大量的多线程构造 但该标准却缺少线程池类 什么原因可能会阻止委员会将其添加到标准中 C 与 C 一样 旨在为程序员提供尽可能多的控制权 C 中的几乎所有内容都是一个非常简单的包装器 这使程序员可以自由地实现他们想要的任
  • Oracle MIN 作为分析函数 - ORDER BY 的奇怪行为?

    这种特殊情况是从一个示例中提炼出来的 在该示例中 程序员假设对于两次装运到罐车的货物 第 1 行将首先装载 我更正了这个问题 以允许以任何顺序执行加载 但是 我发现MIN OVER PARTITION BY 允许ORDER BY在 Orac
  • 为什么 C++ 不能用 LR(1) 解析器解析?

    我正在阅读有关解析器和解析器生成器的内容 并在维基百科的 LR 解析页面中找到了此声明 许多编程语言都可以使用 LR 解析器的某些变体进行解析 一个值得注意的例外是 C 为什么会这样呢 C 的什么特殊属性导致它无法用 LR 解析器进行解析
  • 获取一个 python docker 容器与 redis docker 容器交互

    我对 docker redis 和任何类型的网络都很陌生 至少我知道 python 首先 我已经弄清楚如何获取 redis docker 映像并在 docker 容器中运行它 docker run name some redis d red
  • SSRS网页错误状态代码500

    已经部署了许多引用相同视图的报表部分 但是其中一个无法在服务器上运行 我认为这可能是由于参数到位 其中包含各种字符 这是我收到的错误消息 有谁对如何解决这个问题有任何建议 Webpage error details User Agent M
  • Angular - 如何以百分比形式设置输入字段格式,但在编辑时删除百分比?

    我试图找到一种方法 在初始页面加载时以百分比 例如 97 52 显示 html 输入字段 通过角度服务获取到后端的数据 即可观察 订阅 但也有此输入字段松散 当我编辑它时 即引发 DOM 焦点 事件时 它是百分比格式 格式数据绑定到模型 我
  • 发送“var_dump”到 FireBug 控制台

    如你所知var dump 除了价值展示其数据类型 and length 有什么方法可以将其输出记录到火虫控制台 I tried FirePHP and 消防记录器但两者都只输出变量值 有时甚至是不正确的变量值 也许你需要的是这样的 func
  • Three.js - 在单个点云中使用多个纹理

    我正在尝试使用 ShaderMaterial 在单个点云中使用多个纹理 我将纹理数组与纹理索引属性一起传递给着色器 并选择要在片段着色器中使用的适当纹理 相关设置代码 var particleCount 100 var uniforms t
  • 如何对 android aab 捆绑包使用 ProductFlavors

    我尝试通过productFlavors 构建不同的Android 应用程序包 为了保存和测试文件 我需要一个固定的文件名 对于 APK 我有以下工作代码 applicationVariants all variant gt if varia
  • Android ListView - 在“整”行位置停止滚动

    抱歉 标题令人困惑 我无法非常简洁地表达问题 我有一个带有 ListView 的 Android 应用程序 它使用圆形 无限 适配器 这基本上意味着我可以根据需要向上或向下滚动它 并且当它到达顶部或底部时 项目将环绕 使其看起来对于用户来说
  • Kotlin - 不重复的随机数

    我有一个问题 如何防止随机数重复 顺便问一下 有人可以向我解释如何对这些随机数进行排序吗 override fun onCreate savedInstanceState Bundle super onCreate savedInstanc
  • 使用 Maven 程序集排除文件不起作用

    我有非常简单的程序集描述符
  • Typescript 实现具有相同键但不同类型的接口

    我有一个界面 export interface Foo a string b string 我现在想要另一个类 它实现接口的所有键 但可以有另一种类型 export class Bar implements keysof Foo a Som