05-TypeScript中的方法新功能(下)

再TypeScript中,方法还有一些新功能能够让我们更好的控制方法执行。

1.Generator方法:

yield关键字用于控制方法在执行的时候暂停住,后续方法调用方又可以从暂停的地方继续执行,这种具有yield关键字的并标记为*的方法叫Generator方法。

function* dosomething(){
    console.log("starting");
    // 执行到这里,会暂停住
    yield ;
    console.log("finished");
}
var func1=dosomething();
// 初始调用,执行到yield暂停住
func1.next();
//继续执行后续
func1.next();

2.析构表达式:

析构表达式能够将对象或数组拆解成任意数量的变量。

从对象拆解变量:

function Stock(){
    var stock={
        Name:"MS",
        Price:100.00,
        DateTimes:{
            DateTime1:"d1",
            DateTime2:"d2"
        }
    }
    return stock;
}
var stock=Stock();
var {Name,Price,DateTimes:{DateTime1}}=stock;
console.log(Name);
console.log(Price);
console.log(DateTime1);

从数组拆解变量:

var arr=new Array();
arr.push(1);
arr.push(2);
arr.push(3);
var[number1,,number3]=arr;
console.log(number1);
console.log(number3);
var arr2=[7,8,9,10];
function desfunc([num1,num2,...other]){
    console.log(num1);
    console.log(num2);
    console.log(other);
}
desfunc(arr2);
时间: 2024-10-26 13:28:04

05-TypeScript中的方法新功能(下)的相关文章

C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)

此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中. 2.窗体代码添加 using System.Runtime.InteropServices;//和Html页面交互使用 在类的上一行添加 [ComVisible(true)]//和Html页面交互使用 在类的构造其中添加 this.webB.ObjectForScripting = this;

String中各方法多数情况下返回新的String对象

(1)subString是否始终返回一个新串? 事实并非如此,subString只有在截取的子串是真子串(真子串指子串与原串不相同)时才会返回一个新声明的子串.当截取的是整个字符串时,则返回自身,具体可参考源码: subString方法用来截取子串,方法的使用有两种形式String subString(int begin)和String subString(int begin, int end).具体可参考JDK文档. public String substring(int beginIndex

[译] OpenStack Kilo 版本中 Neutron 的新变化

OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些新的关键功能. 1. 扩展 Neutron 开发社区 (Scaling the Neutron development community) 为了更好地扩展 Neutron 开发社区的规模,我们在Kilo开发周期中主要做了两项工作:解耦核心插件以及分离高级服务.这些变化不会直接影响 OpenStac

教你在Java接口中定义方法

基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClient,其代码结构如下: import java.time.*; public interface TimeClient { void setTime(int hour, int minute, int second); void setDate(int day, int month, int yea

报表开发神器!DevExpress Reporting v19.1:WinForms平台新功能

行业领先的.NET界面控件DevExpress Reporting全新发布了v19.1版本,本文主要为大家介绍WinForms.ASP.Net Core平台.Visual Studio报表设计器中发布的新功能. DevExpress Reporting v19.1下载 Visual Studio报表设计器 用于图像属性的Image Picker 现在使用Image Picker对话框在Visual Studio中编辑图像属性(例如XRPictureBox.ImageSource,XRCheckB

Unity SLua 如何调用Unity中C#方法

1.原理 就是通常在Lua框架中所说的,开放一个C#的web接口,或者叫做在Slua框架中注册函数. 2.作用 在Lua中调用C#中的方法,这个是在做热更新中很常用的一种方法,无论是slua,还是lua,都差不多.这里,我拿slua举例. 3.实际运用 举例:如何在Slua中打印Log 原理:其实是slua通过调用C#中的Debug.Log方法实现的打印,并不是说是lua中的打印方法起到作用. 步骤: 首先,既然是Lua调用C#中的方法,这里自定义写一个打印log的方法. 1 2 3 4 5 6

MSCRM 2015 新功能(一)

主要来源:http://www.microsoft.com/en-us/dynamics/crm-customer-center/what-s-new.aspx 本文中提到的新功能主要以下几块: 一.产品结构的调整 二.支持更多的移动终端 三.快速查询 四.社交听力系统 五.通过账户,产品,或者用户查看层级图表或分组 六.培训工具(课件) 七.快速创建联系人 八.CRM for Outlook在配制方面的改进 九.CRM for Outlook可同步的信息增加 十.业务流程的条件分支(本人觉得最

VS2015预览版中的C#6.0 新功能(二)

VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通过先声明field,然后property只提供getter方法来实现,无法通过自动属性来实现.在c#6.0中,可以通过如下的形式声明只读的自动属性: public string FirstName { get; } 对于只读的自动属性,其backing field是readonly的,其值可以在属性

Oracle12c中数据泵新特性之功能增强(expdp, impdp)

Oracle12c中数据泵新特性之功能增强(expdp, impdp) Oracle的数据泵功能在10g中被引进.本文对数据泵在12c中的增强做一个概览. 1.   禁用日志选项(DISABLE_ARCHIVE_LOGGING) Impdp的TRANSFORM参数已经扩展为包括DISABLE_ARCHIVE_LOGGING选项.该选项的默认值为 "N",不会影响日志行为.将该选项设置为"Y",这将会使表和索引在导入前将日指属性设置为NOLOGGING,从而导入期间减