草庐IT

【TypeScript】TS中type和interface在类型声明时的区别

全部标签

javascript - 使用 $http 发送 JSON 导致 Angular 发送文本/纯内容类型

我只想将以下JSONobjects发送到我的API后端:{"username":"alex","password":"password"}所以我使用Angular$http编写了以下函数:$http({method:'POST',url:'/api/user/auth/',data:'{"username":"alex","password":"alex"}',}).success(function(data,status,headers,config){//DoStuff}).error(function(data,status,headers,config){//DoStuff})

javascript - 使用 == 而不是 === 时的类型转换

这个问题在这里已经有了答案:Whichequalsoperator(==vs===)shouldbeusedinJavaScriptcomparisons?(48个回答)关闭8年前。我通常不喜欢使用==,但今天我只是试验了以下包含==的代码,结果让我有点困惑。有人可以解释发生了什么吗?所有这些都是虚假值:'',0,false,undefined,null假设我做了:if(undefined==null){alert('a');}else{alert('b');}下面的陈述为真:null==undefined0==''false==''0==false但为什么下面的代码返回false?u

javascript - typescript 覆盖构造函数中的扩展属性

我在使用Typescript时遇到问题,我扩展了一个类并从父类(superclass)覆盖了一个属性,但是当我实例化子类时,父类(superclass)属性仍然在构造函数中读取。请看下面的例子:classPerson{publictype:string='GenericPerson';publicconstructor(){console.log(this.type);}}classClownextendsPerson{publictype:string='ScaryClown';}varperson=newPerson(),//'GenericPerson'clown=newClow

javascript - 为什么 Closure 在使用 function.apply 时不对参数进行类型检查?

见下文/***@param{string}a*@param{string}b*/varf=function(a,b){//...}/***@param{string}a*@param{boolean}c*/varh=function(a,c){f.apply(this,arguments);//nocompileerrorf.apply(this,[a,c]);//nocompileerrorf.call(this,a,c);//compileerror:doesnotmatchformalparameter}为什么Closure只在使用call而不是apply时报错?有没有一种方法可

javascript - 测试未导出的 TypeScript 函数

我使用Mocha/Chai测试JavaScript前端代码,现在我们切换到TypeScript。我有几个要测试的功能。但它们不应该是可导出的。我可以在不向它们添加export的情况下访问此函数并对其进行测试吗? 最佳答案 无法访问未导出的模块函数。moduleMyModule{functionprivateFunction(){alert("privateFunction");}}MyModule.privateFunction();//Generatesacompilererror但是,撇开私有(private)​​方法测试的有效

javascript - 如何在 Angular 2 typescript 应用程序中使用 (mqtt) js 库?

我与how-to-use-moment-js-library-in-angular-2-typescript-app中采用的方法非常相似但仍然得到errorTS2307:Cannotfindmodule'mqtt'.npminstall--savemqtttypingsinstall--savemqtt没有找到打字但是这个找到了...typingsinstallmqtt--save--ambient我的tsconfig.conf看起来像这样{"compilerOptions":{"noImplicitAny":true,"module":"commonjs","target":"ES5

javascript - lodash flow 函数在 typescript 中应该怎么写?

lodash.flow结合了两个或多个功能。lodash.flow(double,addTwo)将返回一个函数,该函数将加倍并添加两个。这个函数应该如何在typescript中输入(当前定义只是返回Function)?declarefunctionflow(f1:(a1:In)=>Intermediate,f2:(a1:Intermediate)=>Out):(a1:In)=>Out适用于两个函数,第一个函数有一个输入参数。我不确定如何扩展定义以适用于所有情况。如果这样调用,我的尝试可以支持多个函数:lodash.flow(f1,lodash.flow(f2,f3))但我正在寻找lod

javascript - Q.defer() 和 Promise() 的区别

我试图理解为什么以下代码与Q.defer()和Promise()的行为不同Case1:WhenI'musingQ.defer()getDocument(id).then(function(response){console.log('infirstthen')return'fromtwo';}).then(function(response){console.log(response)});vargetDocument=function(){varb=Q.defer();b.resolve('fromgetDocument');//herewilldosomeasyncoperatio

javascript - 为什么我的 TypeScript 有时会给我一个实例,而有时会给我一个类?

我正在编写一个应用程序来学习TypeScript。它在Chrome中运行良好,但在Edge中运行时出现问题。我有这个方法:setposition(pos:Point){constdiffAsPoint=pos.minus(this.canvasPos);letdiff:Vector2D=diffAsPoint.toVector2D();//我发现,有时diff是一个Vector2D而不是Vector2D的实例。显然,发生这种情况时,对其进行的任何操作都会导致Objectdoesn'tsupportpropertyormethod...toVector2D方法很简单:toVector2D

javascript - 如何在 node.js 项目中为 vscode intellisense 在本地使用 .d.ts 类型?

我正在建立一个使用原生插件的node.js项目。native附加组件包含大量导出函数。我已经设置了一个类型文件(.d.ts),其中包含从native附加组件导出的所有函数定义和数据等。当我用npm打包所有这些并将其安装到客户端项目中时,vscodeintellisense会拾取所有类型并且一切正常。当我尝试在与native附加组件相同的项目中为test.js使用类型时,类型没有被拾取,特别是导出的变量;我怀疑这与它们在.d.ts中的导出方式或.d.ts中模块的命名有关。在.d.ts中,我将导出列为;interfaceMyI{Initiate():void;}module'modulen