欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

六、TypeScript函数新特性

程序员文章站 2023-12-26 15:32:21
...

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);

上一篇:

下一篇: