六、TypeScript函数新特性

版权声明:本文为博主原创文章,未经博主允许欢迎转载,请注明原文链接。一起交流,共同进步。 https://blog.csdn.net/newbie_907486852/article/details/83089757

1、rest和spread操作符

声明任意数量的方法参数

//使用...args声明任意数量的参数
function test(...args) {
    //args本质是一个数组
    args.forEach(
        function (arg) {
            console.log(arg);
        }
    )
}

//调用
test(1,2,3,4);



function test(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
}

//调用
var args = [1, 2];

test(...args);

var args2 = [3, 4,5,6,7];

test(...args2);

2、generate函数

控制函数执行过程,手工恢复和暂停代码执行。

//使用function*声明一个generate函数
function* doSomething() {
    console.log("start===========");
    //相当于断点
    yield;
     console.log("end===========");
}

var func = doSomething();
//跳过当前断点,相当于debug功能
func.next();
func.next();
//使用function*声明一个generate函数
function* getStockPrice(stock) {
    while (true) {
        yield Math.random()* 100;
    }
}

var pricerGenerate = getStockPrice("stock");

var price = 100;

var limitPrice = 15;

while (price>limitPrice) {
    price = pricerGenerate.next().value;
    console.log(`the generate return ${price}`);
}

console.log(`buying at ${price}`);

3、析构表达式

通过表达式将对象或数组拆解成任意数量的变量。

//析构表达式取出函数值
function getStock() {
    return {
        code: "IBM",
        price:100
    }
}
//返回结果直接使用多个变量接收
var { code, price } = getStock();

console.log(code);
console.log(price);

//析构表达式取出对象里面的值
function getStock() {
    return {
        code: "IBM",
        price: {
            price1: 100,
            price2:200
        },
        aaa: "xixi",
        bbb:"haha"
    }
}
//针对对象的析构表达式使用大括号声明
var { code, price: {price2} } = getStock();

console.log(code);
console.log(price2);
//析构表达式与数组
var array = [1, 2, 3, 4, 5];

var [n1, n2, n3, n4, n5] = array;

console.log(n1);
console.log(n2);
console.log(n3);
console.log(n4);
console.log(n5);

//析构表达式和rest表达式
var [n1, n2, n3, ...others] = array;
console.log(others);

猜你喜欢

转载自blog.csdn.net/newbie_907486852/article/details/83089757