草庐IT

TypeScript(4)接口

全部标签

javascript - 将 ES5 JavaScript 用于 Angular 2 应用程序和使用 TypeScript 的优缺点是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.6年前关闭。Improvethisquestion我已经使用Angular1多年了,我开始学习如何使用Angular2。但在编写任何代码行之前,我都在纠结是否必须使用TypeScript或JavaScript。使用TypeScript的优缺点是什么?使用普通旧JavaScript的那些是什么?奖金问题:在Angular2上下文中选择JavaScript和TypeScript是否有最佳实践?我不知道TypeScript,但从我看到的几段代码来

javascript - 将 JQueryUI 与 TypeScript 和 DefinitelyTyped 定义文件一起使用时出错

所以我正在尝试将JQueryUI与TypeScript一起使用,到目前为止,我已经使用npminstalljquery-ui-dist安装了JQueryUI,使用npminstalljquery安装了JQuery。我还使用npminstall--save-dev@types/jquery和npminstall--save-dev@types/jquery-ui添加了来自DefinitelyTyped的定义文件.我得到了以下文件(省略了部分):///import*as$from"jquery";import"jquery-ui";exportdefaultclassResizer{pub

javascript - TypeScript 返回不可变/常量/只读数组

我想要一个返回数组的函数,但我希望返回的数组是只读的,所以当我尝试更改其内容时应该会收到警告/错误。functiongetList():readonlynumber[]{return[1,2,3];}constlist=getList();list[2]=5;//Thisshouldresultinacompileerror,thereturnedlistshouldneverbechanged这可以在TypeScript中实现吗? 最佳答案 这似乎可行...functiongetList():ReadonlyArray{retur

javascript - JavaScript 中接口(interface)模式的运行示例或工作演示

我正在阅读“projavascriptdesignpatterns”一书,发现在理解本书第2章中给出的“接口(interface)”模式方面没有什么困难,因为没有完整的代码示例演示该模式的用法。我正在寻找一些帮助来理解这种模式,一些正在运行的代码示例可能在jsfiddle等上。本书第14-22页解释了这种模式,我不理解的要点是“addForm”方法在哪里以及如何被调用。要么如果有人可以使用一些测试数据和对象来完成ResultFormatter示例,这将对理解模式非常有帮助。可以从http://jsdesignpatterns.com/下载“ProJavascriptDesignPatt

javascript - 正确使用 JavaScript 接口(interface)关键字

首先,不,我并没有尝试为我的JavaScript代码创建任何类型的Java类接口(interface)。我到处都看到了这些问题,虽然我还是JavaScript的新手,但我知道这些不是该语言的一部分。但是,我很好奇interface关键字的实际用途是什么。例如,Math是一个接口(interface),包含定义(但不包含实现)。我相信(也可能是完全错误的)这些是为语言的定义者提供一种方法来强制执行一组要在各种JavaScript引擎中实现的行为。对吗?此外,我希望有一个包含大量实用方法的“静态类”。我喜欢Math.sqrt(3)有一个大写的外部命名空间('Math'),以及其中许多逻辑上

javascript - TypeScript - 如何继承类和覆盖 lambda 方法

我有一个继承类,需要父类有一个虚方法,在子类中重写。这个方法是从基础构造函数调用的,需要访问实例属性,所以它需要是一个lambda函数,所以“this”是“_this”。问题是,覆盖lambda方法对我来说不像覆盖非lambda方法那样有效。这可能吗?如果不是,我想了解原因。此外,当仅从构造函数调用该方法时,“this”是否始终与“_this”相同?classBase{protectedprop=null;constructor(){this.init();this.initLambda();}init(){console.log("Baseinit");}initLambda=()=

javascript - Typescript 转译是否处理从 ES6 到 ES5 的转译?

我正在使用Angular2和TypeScript编写一个应用程序。我想使用IE11+、Chrome45+等支持的js方法(特别是数组的“过滤器”)。我的代码能在旧版浏览器上运行吗?当Typescript转换为vanillajs时,我不确定它对ES6特性做了什么。 最佳答案 TypeScript允许您使用ES6的新语言特性,并将这些语言特性转换为ES5;但是,它不会为ES6中存在但ES5中不存在的内置函数添加polyfill。如果您使用的内置函数仅存在于ES6中并且以ES5为目标,那么您将需要包含必要的polyfill以使代码在ES5

go - 是否可以更改存储在空接口(interface)中的结构的成员

我有这个:typepairstruct{a,bint}然后我定义了两个变量:x:=pair{3,4}varyinterface{}=x我意识到y不存储x的引用,而是通过以下代码存储它的副本:x.b=7fmt.Println(x)fmt.Println(y)//got://{37}//{34}另见:https://github.com/golang/go/blob/master/src/runtime/iface.go#L359有什么方法可以修改y中复制的结构的pair.y成员吗?试过这个:(失败)//cannotassigntoy.(pair).by.(pair).b=7试过这个:(也

go - 嵌入式字段是否计入接口(interface)

在Golang中,我可以在struct中嵌入字段。嵌入字段得到“提升”,新的struct开始使用嵌入字段的所有功能,就好像它是自身的一部分一样。所以我的问题是,嵌入式字段的功能是否计入接口(interface)实现?例如:typeFoostruct{Namestring}func(f*Foo)Name(){fmt.Println(f.Name)}typeHellointerface{Name()Hello()}typeBarstruct{Worldstring*Foo}func(b*Bar)Hello(){fmt.Println("Hello")}在上面的代码中,Bar{}没有实现名为

go - 在 Go 中调用一个将接口(interface)作为参数的函数

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion如何构造接口(interface)作为函数的参数?typeblahinterfaceinterface{method1()method2()method3()}funcblah(iblahinterface){}blah(?)