为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript入门

JoJo 全栈工程师
难度初级
时长 1小时50分
学习人数
综合评分9.57
151人评价 查看评价
9.5 内容实用
9.6 简洁易懂
9.6 逻辑清晰
  • 多行字符串用【`】,1左边那个键。

    查看全部
  • 安装本地的一个npm

    查看全部
  • 类型定义文件(*.d.ts)

     类型定义文件用来帮助开发者在TypeScript中

    使用已有的JavaScript的工具包。

    如:JQuery


    //类型定义文件从哪来

    https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/jquery/index.d.ts

    https://github.com/typings/typings


    查看全部
  • 注解(annotation)


    注解为程序的元素(类、方法、变量)加上更直观更明了的说明,

    这些说明信息与程序的业务逻辑无关,而是供指定的工具或框架使用的。


    查看全部
    0 采集 收起 来源:TypeScript-注解

    2018-08-14

  • 模块(Module)

     模块可以帮助开发者将代码分割为可重用的单元。

    开发者可以自己决定将模块中的哪些资源(类、方法、变量)暴露出来

    供外部使用,哪些资源只在模块内使用。


    一个文件就是一个模块。

    export 和 import控制模块暴露的资源。

    一个模块既可以暴露资源,也可以引用资源。


    // a.ts

    export var prop1;

    var prop2;


    export function func1(){


    }


    function func2(){


    }


    export class Clazz1{


    }

    class Clazz2{


    }


    // b.ts

    import {prop1, func1, Clazz1} from "./a";


    console.log(prop1);

    func1();

    new Clazz1();


    查看全部
    0 采集 收起 来源:TypeScript-模块

    2018-08-14

  • 接口

     用来建立某种代码约定,使得其他开发者在调用某个方法或

    创建新的类时必须遵循接口所定义的代码约定。



    interface关键字


    // 类

    interface IPerson{

      name:string;

      age:number;

    }


    class Person{

     constructor(public config:IPerson){

     }

    }


    var p1 = new Person({

     name:"zhangsan",

     age:18

    });


    implements 关键字

    //方法

    interface Animal(){

      ear();

    }


    class Sheep implements Animal{

     eat(){

      console.log("i eat grass");

     }

    }


    class Tiger implements Animal{

     eat(){

      console.log("i eat meat");

     }

    }


    查看全部
    0 采集 收起 来源:TypeScript-接口

    2018-08-14

  • 泛型

     参数化的类型,一般用来限制集合的内容


    查看全部
    0 采集 收起 来源:TypeScript-泛型

    2018-08-14

  •  类是TypeScript的核心,使用TypeScript开发时,大部分代码都是写在类里面的。

     


    构造方法

     constructor()


    //在构造函数申明属性 

    constructor(public name:string){};


    类的继承:extends

    子类在使用构造函数需要调用父类的构造函数。


    super关键字

    (1)调用父类构造方法

    (2)调用父类其他方法


    查看全部
    0 采集 收起 来源:TypeScript-类

    2018-08-14

  • forEach(),for in 和 for of


    var myArray =[1, 2, 3 ,4];

    myArray.desc = "four number";


    // 不能打断

    // 不能打印desc(属性)

    myArray.forEach(value => console.log(value));


    // 同时把desc和数组打印出来

    for(var n in myArray){

     console.log(n);

     // console.log(myArray[n]);

    }


    // 仅打印数组

    // 可以打断

    for(var n of myArray){

     console.log(n);

     // console.log(myArray[n]);

    }


    查看全部
  • 箭头表达式

      用来声明匿名函数,消除传统匿名函数的this指针问题


    // es6写法

    var sum = {arg1, arg2} => arg1 + arg2;


    //es5写法

    var sum = function(arg1, arg2){

      return arg1 + arg2;

    };


    // 无参数

    var sum = () =>{

    }

    // 一个参数

    var sum = arg1 =>{

     console.log(arg1);

    }

    //没有参数或者只有一个参数不需要用{}


    // 例子


    var myArray = [1, 2, 3, 4 ,5];

    console.log(myArray.filter(value => value % 2 == 0))


    // 等同于

    console.log(myArray.filter(function(value){

     return value % 2 == 0;

    }))



    // 优势

    // es5

    function getStock(name:string){

       this.name = name;

       setInterval(function(){

         console.log("name is " + this.name);

       },1000);

    }


    var stock = new getStock("IBM");

    // 实际上name没有值,this关键字的问题


    // es6

    function getStock2(name:string){

       this.name = name;

       setInterval(() =>{

         console.log("name is " + this.name);

       },1000);

    }


    var stock = new getStock2("IBM");




    查看全部
  • destructuring析构表达式

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


    function getStock(){

     return {

       code:"IBM",

       price:100

     }

    }


    // es5的写法

    var stock = getStock();

    var code = stock.code;

    var price = stock.price;

    console.log(code);

    console.log(price);


    //es6的写法

    var{code,price} = getStock();

    console.log(code);

    console.log(price);


    //或者

    var{code:codex, price} = getStock();

    console.log(codex);

    console.log(price);


    // 例子

    function getStock(){

     return {

       code:"IBM",

       price:{

          price1:200,

          price2:400 

      }

     }

    }

    var {code:codex, price:{price2}} = getStock();

    console.log(codex);

    console.log(price2);


    //例子

    var array1 = [1, 2, 3, 4];

    var [number1, number2] = array1;

    console.log(number1);

    console.log(number2);

    // 1 2

    var [, , number3, number4] = array1;

    console.log(number3);

    console.log(number4);

    // 3 4


    var [number1, number2, ...others] = array1;

    console.log(others);

    // 3 4 


    //例子

    var array1 = [1, 2, 3, 4];

    function doSomething([number1, number2, ...others]){

      console.log(number1);

      console.log(number2);

      console.log(others);

    }

    // 1 2 , 3 4


    查看全部
  • generator函数

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


    function* doSomething(){

      console.log("start");

     

      yield;

      

     console.log("finish");

    }


    var fun1 = doSomething();

    // start

    fun1.next();

    // finish

    fun1.next();


    //例子

    function* getStockPrice(stock){

     while(true){

       yield

       Math.random() * 100;

     }

    }


    var priceGenerator = getStockPrice("IBM");


    var limitPrice = 15;

    var price = 100;


    while(price > limitPrice){

      price = priceGenerator.next().value;

      console.log(`the generator return ${price}`);

    }


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


    查看全部
  • Rest and Spread操作符:

     用来声明任意数量的函数的参数


    function fun1(...args){

       args.forEach(function (arg){

       console.log(arg);

      })

    }


    //js会报错

    function fun2(a,b,c){

      console.log(a);

      console.log(b);

      console.log(c);

    }

    var args=[1,2];

    fun2(...args);

    var args=[7,8,9,10,11];

    fun2(...arg2);





    查看全部
  • 可选参数:

     在方法的参数声明后面用问号来标明此参数为可选参数


    function test(a:string , b?:string, c:string="jojo"){}


    test("xxx");

    将xxx赋值给a

    可选参数不传则为undefined,不要调用。

    可选参数不要声明在必选参数后面,和默认参数相同。


    查看全部
  • 参数默认值

      在参数声明后面用等号来指定参数的默认值

    function test(a:string, b:string, c:string){

    }


    test("xxx","yyy","zzz");


    function test(a:string, b:string, c:string="jojo"){

    }


    test("xxx","yyy");

    函数里的参数默认值最好声明在最右边,这个可以参考其他语言的做法


    查看全部

举报

0/150
提交
取消
课程须知
1、对javascript的基础知识已经掌握。
老师告诉你能学到什么?
1、TypeScript语言中的字符串新特性 2、TypeScript语言中的变量和参数新特性 3、TypeScript语言中的函数新特性 4、TypeScript语言中的匿名函数 5、TypeScript语言中的for of循环 6、TypeScript语言中的面向对象特性

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!