草庐IT

TypeScript(5)类、继承、多态

全部标签

javascript - typescript 实例不工作

我在使用instanceof运算符时遇到问题,它似乎不起作用。这是我的代码的一部分:constresults=_.map(items,function(item:Goal|Note|Task,index:number){letresult={};if(iteminstanceofGoal){result={id:index,title:item.name};}elseif(iteminstanceofNote){result={id:index,title:item.content.text};}elseif(iteminstanceofTask){result={id:index,t

javascript - TypeScript foreach 返回

这个问题在这里已经有了答案:ShortcircuitArray.forEachlikecallingbreak(30个答案)关闭4年前。我想知道是否有更好的方法来执行此操作-看起来从foreach返回并没有从包含foreach循环的函数返回,这可能是C#开发人员的期望。只是想知道是否有更简洁的方法:example(){varforEachReturned;this.items.forEach(item=>{if(true){forEachReturned=true;return;}});if(forEachReturned){return;}//DostuffincaseforEach

javascript - typescript : Type 'Promise<{}>' is not assignable to type 'Promise<void>'

我有以下功能:lettemplateLoader=(onDidFinishLoad:Function,onDidFailLoad:Function)=>(url:string):Promise=>newPromise((resolve,reject)=>{mainWindow.loadURL(url);mainWindow.webContents.once('did-finish-load',()=>{onDidFinishLoad(resolve);});mainWindow.webContents.once('did-fail-load',(event,errorCode,erro

javascript - JavaScript 命名空间、类和继承的简单示例

我被要求将我们的一些PHP代码移植到JavaScript,以便我们的更多逻辑在客户端运行。我想要的是一个简单的例子来展示:包含两个类(“Master”和“Slave”)的命名空间(“Package”)“Master”类有一个属性“p”、一个函数“m”和一个采用单个参数设置“p”初始值的构造函数“Slave”类从“Master”类继承了“p”、构造函数和“m”我不介意使用某种现有框架,但它必须是轻量级的——理想情况下不超过200LOC(未缩小)。这是我的尝试,FWIW:varPackage={};Package.Master=function(pValue){this.p=pValue;

javascript - 无法使用 Webpack、Typescript、自定义模块目录找到模块

我想做什么我写了一个虚拟模块my-component,它基本上导出了一个类Something。我把它放在app/modules/中。现在我想使用app/app.js中的导入语法来访问它:import{Something}from'my-component';期望:根据我当前的Webpack配置(如下),我希望它能工作。实际:这会引发错误:ERRORin[default]//app/app.ts:1:26Cannotfindmodule'my-component/Something'.我尝试解决的问题我知道模块本身的定义是正确的,因为我可以使用相对路径导入它:import{Somethi

javascript - 使用 TypeScript 强制 React 组件命名

有React+TypeScript的应用,所有的组件类都要大写,有Component后缀,例如:exportclassFooBarComponentextendsReact.Component{...}应用程序被弹出create-react-application应用程序,即使用Webpack构建。如何强制组件命名与样式指南保持一致,至少对于组件类而言,当存在不一致时会在构建时抛出错误?我相信这不能单独使用TSLint/ESLint来实现。如果应该对TypeScript和JavaScript使用不同的方法,那么针对这两种语言的解决方案会很有帮助。 最佳答案

javascript - Visual Studio -> Shared TypeScript Library -> TS6059 文件 '' 不在 'rootDir' '' 下。 'rootDir' 应该包含所有源文件

我们正在使用VisualStudio2017并且有两个独立的Web项目,它们应该共享一些用TypeScript编写的React组件。还可以共享JavaScript文件和CSS文件。为此,我们在VisualStudio中创建了一个共享项目。WhatisthedifferencebetweenaSharedProjectandaClassLibraryinVisualStudio2015?目前该项目只有一个包含此信息的文件。exportconstTypes={Type1:'1',Type2:'2',Type3:'3'}为了测试,我可以像这样引用它,VisualStudio将找到该文件:im

javascript - 主干 View 继承

我正在尝试为一个对象浏览器编写一个BackboneView,该View旨在在具有不同对象类型和略有不同操作的多个地方实现。我曾尝试简单地在我的浏览器中扩展主干View,然后在我的实现中扩展浏览器,但是这给我留下了一些共享的属性。这是一个不受欢迎的效果,因为数据会附加到每个浏览器创建的所有实现中。有人可以阐明解决此问题的方法或替代解决方案吗?以下是一些代码示例,可让您更好地了解它的当前状态:varBrowserView=Backbone.View;_.extend(BrowserView.prototype,Backbone.View.prototype,{className:'brow

javascript - 在 Typescript 中导入 Chai

我正在尝试在typescript中使用chai。Chai的javascript示例显示为:varshould=require('chai').should();我下载了类型定义:tsdinstallchai...引用文件,尝试导入///importshould=require('chai').should();我得到:errorTS1005:';'expected...知道怎么做吗? 最佳答案 import{should}from'chai';should(); 关于javascript

javascript - 使用 d3.js 和 TypeScript 绘制饼图时出现编译错误

我正在尝试使用d3.js库和TypeScript绘制饼图。我有以下代码:"usestrict";moduleChart{exportclasschart{privatechart:d3.Selection;privatewidth:number;privateheight:number;privateradius:number;privatedonutWidth:number;privatedataset:{label:string,count:number}[];privatecolor:d3.scale.Ordinal;constructor(container:any){this