为什么必须声明 Typescript 的环境接口实现?

2023-12-05

我有一些接口及其实现的定义。每个实现类都必须声明许多方法。

我发现它乏味且多余,因为它只是一个定义。是否只是缺乏时间来实现此功能,或者为什么应该强制执行环境实现定义背后的某些想法?或者我错过了什么?

UPDATE

我现在不喜欢我的问题,它是从一个确定接口成员已实现的人的角度写的,因为库所有者这么说。但是,如果我决定创建自己的与其他人的库的接口,我最好强制指定每个实现成员作为健全性检查。


假设您不必写出接口成员:

class Base { }
class Derived extends Base { }

interface Foo {
    method(t: number): Base;    
}

declare class FooImpl1 implements Foo {
    // Empty
}

declare class FooImpl2 implements Foo {
    public method(): Derived;
}

Is FooImpl2试图声明额外的重载method, or is FooImpl2实施method使用需要更少参数并返回更多派生类型的签名?两者都是有效的解释。您必须为类似这样的各种情况制定规则,以便程序员可以指定它们的实际含义,从而使语言变得更难以预测。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么必须声明 Typescript 的环境接口实现? 的相关文章

随机推荐

  • 确定列表 A 中的名称是否完全匹配、部分匹配或在列表 B 中找不到?

    在 Excel 中 我有两列属性名称 我需要确定 A 列中的名称在 B 列中是否完全匹配 部分匹配或不匹配 除了设置这个之外 让我感到困惑的是 如果有多个部分匹配怎么办 我认为用 最佳匹配 组件使这个复杂化是不合理的 但我不知道如何处理这个
  • 使用 sf/mapview 连接两组坐标以创建线条

    我有一个数据集 其中一只鸟在一个位置 Blong Blat 捕获 然后在另一个位置 Elong Elat 再次遇到 这些坐标采用纬度 经度格式 我想用一条线连接捕获和遭遇位置并将它们绘制在地图视图中 在下面的数据中 每一行都是一只单独的鸟
  • opencsv的writeAll(ResultSet res,Boolean b)方法在数据周围添加双引号

    当我使用此函数写入 csv 文件时 所有数据都嵌入在双引号中 有没有办法在不使用双引号的情况下写入 csv 文件 CSVWriter writer new CSVWriter new FileWriter table csv t write
  • android 清单中的任何密度

    我在我的应用程序中遇到了一个惊人的问题 当我把anyDensity在清单中标记为 false 我的应用程序运行良好 但每当我将其设置为 true 时 我的应用程序就会变得模糊 我会在我的应用程序上创建一些位图 如果我这样做的话会有问题吗an
  • 以编程方式清除 IE 缓存与 InetCpl.cpl,ClearMyTracksByProcess

    我有一个托管网络浏览器控件的应用程序 它使用我的微软提供的代码示例 定期 清除缓存 http support microsoft com kb 262110 然而 我注意到 一段时间后 缓存会损坏或无法正常工作 应该超出缓存的请求 会被一遍
  • 如何获取用于调用 google api 的委托凭证对象?

    我正在尝试通过 API 获取 gsuite 警报 我已经按照他们的要求创建了一个服务帐户docs我已将该服务帐户分配给我的谷歌云功能 我不想使用环境变量或上传凭据以及源代码 但我想利用函数使用的默认服务帐户 from googleapicl
  • 修复跨线程异常

    我需要一些帮助来修复跨线程异常 我使用 Invoke 通常可以解决这个问题 但由于某种原因它不起作用 void paintTimer Elapsed object sender System Timers ElapsedEventArgs
  • 如何计算python中数组中的值与数组之和的比率? [复制]

    这个问题在这里已经有答案了 我有一个这样的数组 array 1 2 3 5 3 4 6 7 2 对于每个成员 我想计算它们与行总和的比率 因此 我在建议样本中的问题的结果是 result 1 1 2 3 2 1 2 3 3 1 2 3 5
  • iOS 逐帧视频向前/向后播放

    我想在 iOS 设备上以慢动作播放视频 我的视图包含一个视频 约 2 秒长 和一个滑块 用户可以移动滑块并逐帧 向前和向后 浏览电影 MPMoviePlayerController缺乏逐帧步进的能力 我读到MVAssetReader 但我不
  • 绑定 int64 (SQL_BIGINT) 作为查询参数会导致在 Oracle 10g ODBC 中执行期间出错

    我在 Oracle 10g 上使用 ODBC 3 0 插入表失败 我不知道为什么 数据库运行在Windows Server 2003上 客户端运行在Windows XP上 桌子 CREATE TABLE test testcol NUMBE
  • Flutter:预定的通知日期时间

    我正在寻找将 Flutter 的插件 date time picker 与本地通知集成 因此 当我选择日期时间时 我还会安排通知 这是我的代码 你能帮我吗 现在我没有任何错误 但代码不起作用 class test1 extends Stat
  • 如何规范工作目录中的行结尾

    我的 git 存储库中有以 LF 结尾的文件 不知何故 我的工作树中的一些文件被转换为 CRLF 有没有办法将我的工作树中的行结尾转换回 LF 请注意 我的目录中有一些文件 gitignore所以我不想简单地删除所有内容并再次检查 尽管如果
  • 在 mac 雪豹上启用 php [关闭]

    Closed 这个问题是无关 目前不接受答案 安装 Entropy PHP 5 3 03 pkg 我一直在尝试在我的 mac 上启用 php 但每次我将浏览器指向 test php 时 我得到的只是显示的源代码 我将 test php 放在
  • Bash 脚本 - Do-While 循环中的变量作用域

    我有一个 do while 循环 我在其中向自身添加一个变量 while read line do let variable variable someOtherVariable done return variable 当我回显 vari
  • 使用 C# .accdb 文件的 Microsoft Access 压缩和修复

    我需要使用 C 压缩并修复 accdb 最后一个 MS Access 版本 我尝试使用这个 var jroEngine new JRO JetEngineClass var old Provider Microsoft ACE OLEDB
  • 用 rpy 制作的图发送到 X11 突然关闭?

    我正在使用 RPy2 来绘制一些图 绘图显示 但 X11 窗口立即消失 我输入的内容如下CCFS是一个数据矩阵 import rpy2 robjects as robjects r robjects r pca r princomp CCF
  • 将 mongo ObjectId 转换为字符串并将其用于 URL 可以吗?

    document show id 4cf8ce8a8aad6957ff00005b 一般来说 我认为您应该谨慎向客户端公开内部结构 例如数据库 ID URL 很容易被操纵 并且用户可能访问您不希望他访问的对象 特别是对于 MongoDB 对
  • SQL Server:如何获取排它锁以防止竞争条件?

    我有以下 T SQL 代码 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION T1 Test This is a dummy table used for lock
  • PHP 多个复选框删除

    我很难解决删除多个复选框的问题 有人可以指导我找到解决方案吗 这里应该发生的是 用户可以勾选复选框并单击删除按钮来删除勾选的框 不幸的是 我的代码似乎不起作用 你能为我指出正确的方向吗 div class page img class pa
  • 为什么必须声明 Typescript 的环境接口实现?

    我有一些接口及其实现的定义 每个实现类都必须声明许多方法 我发现它乏味且多余 因为它只是一个定义 是否只是缺乏时间来实现此功能 或者为什么应该强制执行环境实现定义背后的某些想法 或者我错过了什么 UPDATE 我现在不喜欢我的问题 它是从一