草庐IT

TypeScript(5)类、继承、多态

全部标签

javascript - 如何使用 angular2 和 typescript 链接 3 个 Promise

我已经成功地链接了promise,但我发现我做这件事的方式足够复杂:我想知道是否有更优雅的方式来做到这一点。我使用Angular2、Typescript和signalR。我有一个服务getIntervention,它通过Id从服务器返回一个对象。在调用getIntervention之前,我想检查要连接到服务器的客户端,在连接到服务器之前,我想要加载SignalR脚本。所以我创建了第一个promisescriptLoadedPromise,它等待加载SignalR脚本。当scriptLoadedPromise被解析时,一个新的promiseconnectionPromise被创建,等待连

javascript - TypeScript 属性中的 readonly 与 get 之间有什么区别?

在TypeScript中将属性声明为readonly与通过get()创建它之间是否存在功能差异?两者的行为相同,但最好知道除了偏好之外是否还有理由使用其中一个。 最佳答案 它对生成的JavaScript有所不同:getter将是一个访问器属性(例如,函数),readonly属性将是一个数据属性。这:classExample{getfoo():string{return"foo";}readonlybar:string="bar";}如果您以ES2015+为目标,则转换为:"usestrict";classExample{constr

javascript - 是否可以从 JavaScript 中的 ECMAScript 6 类继承旧式类?

在Node.js4.2.1上运行以下代码时:'usestrict';varutil=require('util');classMyClass{constructor(name){this.name=name;}}functionMyDerived(){MyClass.call(this,'MyDerived');}util.inherits(MyDerived,MyClass);vard=newMyDerived();我收到以下错误:constructor(name){^TypeError:Classconstructorscannotbeinvokedwithout'new'我想知道

javascript - 在 TypeScript 中对函数使用静态修饰符有什么好处吗?

我最近开始使用TypeScript,我的IDEWebStorm提示我可以使用静态修饰符...exportdefaultclassMyClass{publicbar():any{//dosth.withinstancevalues}privatefoo(a:any,b:any):any{//dosth.withoutinstancevalues,likechecking}}在这里我会收到一个警告,提示foo(a,b)可以被声明为static。现在我关闭了那个“警告”,因为我主要将静态的自由使用视为“代码味道”,但话又说回来我不是TypeScript的专家。使用static修饰符有什么重要

javascript - 使用 Jasmine 测试 Angular2/TypeScript 管道

我有一个带有TypeScript应用程序设置的Angular2,带有非常基本的Jasmine测试。我想测试我的一根pipe。lpad.pipe.tsimport{Pipe,PipeTransform}from'@angular/core';@Pipe({name:'lpad'})exportclassLPadPipeimplementsPipeTransform{transform(value:any,args:string[]):any{letpad=args[0];return(pad+value).slice(-pad.length);}}在html模板中的用法:{{size.S

javascript - DOM 背景颜色传播闪烁继承 Google Chrome 中的初始背景颜色,使用主题切换来重载主体背景颜色

我目前正在为我的网站开发一个主题切换器,它使用Javascript/jQuery来使用由按钮切换的lightmode()/darkmode()函数来操纵Body.bg颜色。我想要做的是在主体背景颜色与淡入淡出之间创建无缝过渡。我已经制作并创建了它,但问题是当主题读取存储类型时,它会在Chrome和ChromeCanary中快速闪烁,但在Safari和Catalina的SafariTechPreview中它可以无缝工作。但是,当用户切换到白色然后单击导航链接时,我一直遇到一个问题,这会导致暗模式主题黑色闪烁。我的网站开始时启用了暗模式,bodybg=#0a0a0a,但是当它切换到白色并更

javascript - JavaScript 中的继承导致 Uncaught TypeError

可能是我在这里遗漏了什么。请耐心等待,因为我是JavaScript中OOP的新手。但我需要找到解决我的问题的方法。我有这个代码。varparent=function(){}parent.prototype.someFunc=function(){return"astring";}现在我正在尝试使用如下代码继承父对象,varchild=function(){parent.call(this);}child.prototype=newparent();当我这样做时,它会起作用。varobj=newchild();obj.someFunc();但我想在child里面有someFunc(),如

javascript - 如何在同一个 Visual Studio 项目中混合使用 Node.js 和 Typescript?

VisualStudio有一个Typescript插件,用于使用Typescript语言开发应用。还有用于VS的Node.js工具,使用它可以创建和调试Node.js应用程序。我尝试创建一个Node.js项目,但后来我无法向其中添加Typescript文件,如果我手动添加它们,它们不会被编译为javascript(无法将它们的构建操作设置为TypeScriptCompile。)如果我创建一个简单的Typescript项目,那么它不会使用Node启动我的应用程序,因为它基本上只是一个ASP.Netweb项目。是否有可能以某种方式创建一个同时使用Typescript和Node.js集成的V

javascript - 在一个文件而不是所有 JS 文件中引用 typescript 定义?

我正在VisualStudioCode中开发一个NodeJS(+Express)项目,想知道是否有一种方法可以在一个全局位置引用TypeScript定义,而不必在每个JS文件中重新引用定义.我看到VSCode支持tsconfigs,但我不认为.tsconfig文件有一个部分。 最佳答案 在某些编辑器中,您可以使用tsconfig.json中的filesGlob属性来简化引用。例如:"filesGlob":["./scripts/*.ts","!./node_modules/**/*.ts"]但是,这仅在TypeScript2发布时适

javascript - Babel 已经做了 Object.create(superClass.prototype) 为什么还要用 setPrototypeOf 来继承?

将以下代码发布到BabelREPLclassTest{}classTest2extendsTest{}你得到了这个inherits函数function_inherits(subClass,superClass){if(typeofsuperClass!=="function"&&superClass!==null){thrownewTypeError("Superexpressionmusteitherbenullorafunction,not"+typeofsuperClass);}subClass.prototype=Object.create(superClass&&superC