`

04.TypeScript函数新特性

阅读更多
  1. Rest and Spread操作符
    任意数量的方法参数,restAndSpread.ts文件内容如下
    function test(...args ){
        args.forEach(function(arg){
            console.log(arg);
        });
    }
    
    test('aaa', 'bbb');
    test('aaa');
    
    function test2(a, b, c) {
        console.log(a);
        console.log(b);
        console.log(c);
    }
    
    var arr1 = [1, 2];
    var arr2 = [7, 8, 9, 10];
    test2(...arr1);
    test2(...arr2);
    
      编译后的restAndSpread.js文件内容如下
    function test() {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        args.forEach(function (arg) {
            console.log(arg);
        });
    }
    test('aaa', 'bbb');
    test('aaa');
    function test2(a, b, c) {
        console.log(a);
        console.log(b);
        console.log(c);
    }
    var arr1 = [1, 2];
    var arr2 = [7, 8, 9, 10];
    test2.apply(void 0, arr1);
    test2.apply(void 0, arr2);
     
  2. generator函数
    实例1:generator1.ts文件内容如下
    function* doSomething() {
        console.log('start');
        yield;
        console.log('finish');
    }
    
    var func1 = doSomething();
    func1.next();
    func1.next();
    
    实例2:generator2.ts文件内容如下
    function* getStockPrice(stock) {
        while (true) {
            yield Math.random()*100;
        }
    }
    
    var priceGenerator = getStockPrice("IBM");
    
    var price = 100;
    var limitPrice = 15;
    
    while (price > 15) {
        price = priceGenerator.next().value;
        console.log(`the generator return ${price}`)
    }
    
    console.log(`buying at ${price}`);
      
  3. 析构表达式
    对象的析构表达式,objectDestructuring.ts文件的内容如下
    function getStock() {
        return {
            code: '3938168',
            name:'IBM',
            price: {
                price1: 200,
                price2:400
            }
        }
    }
    
    var { code, name: stockName, price: { price2 } } = getStock();
    
    console.log(code);
    console.log(stockName);
    console.log(price2);
    编译后objectDestructuring.js的文件内容如下
    function getStock() {
        return {
            code: '3938168',
            name: 'IBM',
            price: {
                price1: 200,
                price2: 400
            }
        };
    }
    var _a = getStock(), code = _a.code, stockName = _a.name, price2 = _a.price.price2;
    console.log(code);
    console.log(stockName);
    console.log(price2);
    数组的析构表达式,arrayDestructuring.ts文件的内容如下
    var arr = [1, 2, 3, 4];
    var [number1, , , number2] = arr;
    console.log(number1);
    console.log(number2);
    
    arr = [5, 6, 7, 8];
    var [n1, n2, ...others] = arr;
    console.log(n1);
    console.log(n2);
    console.log(others);
    
    function test([n1,n2,...others]) {
        console.log(n1);
        console.log(n2);
        console.log(others);
    }
    
    test(arr);
    编译后arrayDestructuring.js的文件内容如下  
    var arr = [1, 2, 3, 4];
    var number1 = arr[0], number2 = arr[3];
    console.log(number1);
    console.log(number2);
    arr = [5, 6, 7, 8];
    var n1 = arr[0], n2 = arr[1], others = arr.slice(2);
    console.log(n1);
    console.log(n2);
    console.log(others);
    function test(_a) {
        var n1 = _a[0], n2 = _a[1], others = _a.slice(2);
        console.log(n1);
        console.log(n2);
        console.log(others);
    }
    test(arr);
       
分享到:
评论

相关推荐

    Apress.TypeScript.Revealed.Feb.2013

    7. **ES6+特性的支持**:TypeScript不仅包含了ES6的特性,如箭头函数、解构赋值、Promise等,还支持ES7及更高版本的一些新特性。 8. **工具链支持**:TypeScript配备了强大的工具链,包括tsc编译器、IntelliSense...

    Packt.TypeScript.for.Angular.Developers (含源代码)

    本书首先介绍了TypeScript的基础知识,包括变量、数据类型、函数、类和接口等核心概念。通过学习,开发者将了解到如何利用这些特性来编写更健壮的代码。此外,作者还深入讨论了泛型、装饰器和异步编程,这些都是在...

    15.typescript.rar

    1. 类(Class):TypeScript引入了ES6中的类语法,支持继承、构造函数、访问修饰符(public、private、protected)、抽象类和接口等面向对象特性。 2. 抽象类与接口的区别:抽象类可以包含实现的方法,而接口只定义...

    10.Typescript面试真题-62页.7z

    6. **ES6+特性**:TypeScript兼容ES6及以后的特性,如箭头函数、解构赋值、Promise等。 7. **TypeScript与JavaScript的互操作性**:了解如何在既有JavaScript项目中引入TypeScript,并保持向后兼容。 8. **Vue.js...

    Tackling.TypeScript.2020.6.pdf

    - **用途**:适合初学者快速上手和实验新特性。 #### 5.2 TSNode - **命令行工具**:允许直接在Node.js环境中运行TypeScript代码。 - **优势**:简化了开发流程,提高了开发效率。 ### 五、TypeScript基础知识 ##...

    typescript-tutorial.pdf

    此外,TypeScript拥有自己的官网,且社区活跃,不断地推出新的更新和特性。通过官方手册、GitHub版本、官方QQ群等资源,可以获取到最新的TypeScript动态和社区支持。 9. TypeScript与前端框架的关系: TypeScript的...

    TypeScript.docx

    TypeScript语法包括变量声明(let, const)、函数定义、对象和数组初始化等,基本与JavaScript一致,但增加了类型注解。 4. TypeScript变量声明 TypeScript中使用let和const声明变量,同时可以指定变量的类型,...

    typescript.pdf

    3.函数:TypeScript的函数可以有参数类型和返回类型。 4.类和对象:TypeScript支持类和对象的创建和使用,可以使用类的继承和接口的实现。 5.接口:TypeScript的接口可以定义函数、类或对象的形状。 6.模块:...

    typescript版 vconsole 代码

    TypeScript 是 JavaScript 的超集,它添加了类型系统和对 ES6+ 新特性的支持,例如类、接口、泛型等。TypeScript 编译后会生成 JavaScript 代码,可以在任何支持 JavaScript 的环境中运行。使用 TypeScript 可以帮助...

    TypeScript开发手册(极其适合C#开发人员)

    2. TypeScript与JavaScript的关系:尽管TypeScript在JavaScript的基础上增加了新的特性,但它仍然能够被编译成标准的JavaScript代码。这种编译过程,也就是从TypeScript代码转换为JavaScript代码的过程,使得...

    零基础学 TypeScript.zip

    TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的超集,增加了静态类型系统和许多高级特性,旨在提高代码的可维护性和开发效率。本教程针对初学者,将逐步引导你从零开始学习 TypeScript。 ### 1. ...

    Typescript类型脚本课件.pptx

    函数在Typescript中可以通过函数声明或函数表达式声明,函数的成员包括: 1. 参数默认值 2. 可选参数 3. 剩余参数 泛型是Typescript的一种重要特性,泛型可以应用于类、接口、数组等多种场景。泛型的成员包括: 1...

    《TypeScript》电子pdf版

    - **特性**: - **类型系统**: TypeScript 添加了一套强大的类型系统来帮助开发者编写更健壮的代码。 - **ES6 支持**: 它支持最新的 JavaScript 版本 (ES6 及以上) 的所有功能。 - **跨平台兼容性**: TypeScript ...

    Getting started with TypeScript with intro Angular

    TypeScript中的类可以实现接口,并且支持继承、抽象类、构造函数参数等特性。 7. 泛型 泛型是TypeScript中的一个重要特性。泛型可以让你定义一个函数、接口或类,但不具体指定它们的类型,而是在使用它们的时候再...

    typescript-handbook.pdf

    《TypeScript Handbook》是学习TypeScript的重要参考资料,尤其对于2022年的开发者来说,掌握TypeScript的最新特性和用法至关重要。这本书是基于2022年1月10日的commit c10508和TypeScript 4.5版本编写的,确保了...

    使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码

    6. TypeScript 支持 ES6+ 的新特性,比如类、模块和箭头函数等。 7. TypeScript 支持一些在普通 JavaScript 中不常见的高级特性,例如泛型、接口和枚举等。 8. TypeScript 对模块化编程有更好的支持,可以清晰地组织...

    TypeScript.docset.rar

    8. **严格模式(Strict Mode)**:TypeScript的严格模式可以捕获许多JavaScript中可能忽略的错误,例如未声明的变量、函数参数不匹配等。 9. **类型推断(Type Inference)**:TypeScript可以自动推断变量、参数和...

    typescript 教程.pdf

    在更高级的特性中,TypeScript支持类型别名,允许为任何类型定义新名称。字符串字面量类型和元组类型是数组和字符串的扩展,允许更精确地描述数组元素和字符串值。枚举类型提供了一种定义一组命名常量的方式,使得...

    TypeScript手册(TypeScript Handbook)重写新版.pdf

    TypeScript是JavaScript的一个超集,提供了静态类型系统和基于类的面向对象编程特性。在TypeScript的最新版本4.2中,手册被重写以涵盖新的功能和改进。 首先,手册提到了学习TypeScript的第一步,即了解基本类型和...

Global site tag (gtag.js) - Google Analytics