在 TypeScript 中实现接口原型

2024-04-02

我创建了一个TypeScript我的服务结果界面。现在我想为里面的两个函数定义一个基本功能。问题是我收到错误:

“Support”类型的值不存在属性“ServiceResult”。

I use WebStorm为发展(VS2012让我紧张,因为大型项目冻结 - 等待更好的集成:P)。

我是这样做的:

module Support {
    export interface ServiceResult extends Object {
        Error?: ServiceError;
        Check?(): void;
        GetErrorMessage?(): string;
    }
}

Support.ServiceResult.prototype.Check = () => {
   // (...)
};

Support.ServiceResult.prototype.GetErrorMessage = () => {
   // (...)
};

我也尝试将我的原型移动到模块中,但仍然出现同样的错误......(当然我删除了Support.字首)。


您无法对接口进行原型设计,因为编译后的 JavaScript 根本不会发出与接口相关的任何内容。该接口的存在纯粹是为了编译时使用。看看这个:

这个打字稿:

interface IFoo {
    getName();
}

class Foo implements IFoo {
    getName() {
        alert('foo!');
    }
}

编译为以下 JavaScript:

var Foo = (function () {
    function Foo() { }
    Foo.prototype.getName = function () {
        alert('foo!');
    };
    return Foo;
})();

没有IFoo在结果中,根本没有 - 这就是你收到该错误的原因。通常,您不会对接口进行原型设计,而是对实现接口的类进行原型设计。

您甚至不必自己编写原型,只需将接口实现为类就足够了,TypeScript 编译器将为您添加原型。

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

在 TypeScript 中实现接口原型 的相关文章

随机推荐

  • 如何使文本浮动在列表项空间的底部?

    如何使文本浮动在列表项空间的底部 我试图使 li 中的所有文本都位于 li 高度的底部 有没有更好的方法来实现这种外观 以及如何超链接 h1 标题 margin 0 padding 0 nav width 100 height 110px
  • 如何在 Internet Explorer 中使用 html 子元素获取 contenteditable div 中的插入符位置

    我正在使用一个 contenteditable div 它可以选择包含内联 html 元素 例如标签 在文本流中 在某些时候 我需要抓取 contenteditable div 的插入符位置 光标位置 插入符 光标 位于 html 子元素之
  • Angular - 错误:spawn cmd ENOENT

    您好 当我生成角度时遇到问题 哟角度 我都完成了 运行 Bower install 和 npm install 来安装所需的依赖项 如果失败 请尝试自己运行该命令 调用角度 路线 调用 Angular Controller C Users
  • 在每个时间间隔更改文本 - React

    我试图在反应的每个时间间隔更改文本 屏幕出现时自动开始 但问题是 给定的时间不被尊重 并且文本以随机时间间隔更改 这是我的代码的一部分 const names tony elias fadi const newName setnewName
  • 在 php 中将 emoji 字符转换为 Unicode 代码点数字

    我正在尝试使用 php 将表情符号转换为 unicode 更多信息 https unicode org emoji charts full emoji list html https unicode org emoji charts ful
  • symfony 2 twig 访问数组 javascript 索引

    是否可以从中获取对象twig数组知道索引是ajavascript多变的 我的控制器 public function showContactModalAction iduser profil em this gt getDoctrine gt
  • 如何在 Electron BrowserWindow 中查看 PDF?

    所以我有这个 Electron 应用程序 在一个 html 文件中 我链接了另一个脚本 该脚本为程序提供了一些实用功能 其中之一是 function openPDF filePath let pdfWindow new electron r
  • Logstash 的 Java 过滤器

    你知道 Logstash 有一个 Ruby 过滤器 它使我能够用 Ruby 编写代码 它通常包含在配置文件中 如下所示 filter ruby code gt 现在我有两个 Jar 文件 我想将它们包含在过滤器中 以便可以根据我在这些 Ja
  • c++0x 中用户定义文字的重载规则

    我对超载规则有点困惑 假设有以下文字运算符 unsigned long long operator xx unsigned long long cooked literal int 1 unsigned long long operator
  • stringbuilder 调用中的 Java 字符串连接

    据我所知 StringBuilder 在连接期间不在字符串池中创建临时字符串实例 从而有助于减少内存使用量 但是 如果我这样做会发生什么 StringBuilder sb new StringBuilder bu sb append b u
  • Meteor - 设置文档标题

    有没有办法改变
  • 如何自动测试基于浏览器的应用程序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如果它是一个Windows程序 我会使用Auto it http www autoitscript com autoit3 index s
  • R data.table 在导出函数中中断

    我在让 data table 在 roxygen2 导出函数中工作时遇到问题 这是一个名为 foo R 位于我的包的 R 目录中 的文件中的一个简单的假函数 它使用 data table Data table test function e
  • jQuery 验证(至少一个字段有文本)

    我的这个页面有几个 TextAreas asp net mvc 我需要验证这些字段中至少有一个包含文本 我怎样才能用 jQuery 做到这一点 这是我拥有的 textAreas 的一个示例 假设您没有使用验证插件并且所有文本区域都有 Esp
  • 在 Prolog 中编辑 Eliza 聊天机器人

    我一直在努力尝试在 Prolog 中编辑 Eliza 聊天机器人 每次我尝试编辑某些内容时 都会出现新的错误 它是否受到任何形式的编辑保护 我使用 SWI prolog 编辑器进行编辑 问题是我试图在没有完全理解代码的情况下最小化代码 我正
  • Java Eclipse 错误“未找到源。”

    我是编程世界的新手 我正在尝试编写一个简单的程序 从文件中读取并输出单个数字 我相信我在代码中设置了所有内容 我是否需要对 txt 文件的位置执行任何特殊操作才能使程序读取该文件 package pack import java util
  • 在Python中将十六进制值转换为RGB值

    在这里处理杰里米的回应 将十六进制颜色转换为 RGB 反之亦然 https stackoverflow com questions 214359 converting hex color to rgb and vice versa我能够获得
  • 接口是否位于继承链中?

    网上有两种说法Interface 那是陈述A 接口不属于继承链 其他声明B 接口可以继承其他接口 http msdn microsoft com en us library ms173156 28v vs 80 29 aspx 这两种说法是
  • NodeJS应用程序出现内存泄漏,它在哪里?

    我有一个 NodeJs 应用程序 它通过 Redis 服务器上的订阅来侦听消息 它会收集 5 秒的消息 然后将它们推送到连接的客户端 代码如下所示 io sockets on connection function socket nClie
  • 在 TypeScript 中实现接口原型

    我创建了一个TypeScript我的服务结果界面 现在我想为里面的两个函数定义一个基本功能 问题是我收到错误 Support 类型的值不存在属性 ServiceResult I use WebStorm为发展 VS2012让我紧张 因为大型