美文网首页
TypeScript 入门

TypeScript 入门

作者: 彬_哥哥 | 来源:发表于2020-05-31 11:23 被阅读0次

话不多说先上图!!!


timg.jpg

TypeScript 的好处

  • 支持ES6规范
  • 强大的IDE支持
  • Angular2 的开发语言

TypeScript 安装开发环境

  • compiler 就是 typescript 的编译器(转 javascript)
  • 可以使用在线commiler

TypeScript 概念,语法和特性

  • 字符串新特性
// 多行字符串
  ``

//js
  var content = 'aa'+
'bb'+
'cc';
//var content = 'aabbcc';

// typescript
var content = `aa
bb
bb`
//var content = "aabbcc";
  • 字符串模板
`${xxxxx}`

var myname = 'zhai liang';
var getName = function () { 
    return 'zhai liang'
}
console.log(`hell ${myname}`);
console.log(`hell ${getName}`);
  • 自动拆分字符串
function test(template, name, age) { 
    console.log(template)
    console.log(name)
    console.log(age)
}

var myname = 'zhai liang';
var getAge = function () { 
    return 18;
}
test`hello my name is ${myname},i m ${getAge()}`

参数新特性

  • 参数类型
var myname: string = "zhan ling"; // 字符串

var alias:any = 'xixi'; // 可以声明任何类型0

var age: number = 13; // 数字

var man: boolean = true; // 布尔

function test(): void {  // void  不需要任何类型的返回值
    return
}

// 自定义类型
class Person {
    name: string; 
    age:number
}

var zhangsan: Person = new Person();

zhangsan.name = "zhansan";
zhangsan.age = 18;
  • 参数默认值
var myname: string = "zhangliang";
function test(a: string, b: string, c: string) { 
    console.log(a);
    console.log(b);
    console.log(c);
}
test("xxx", "yyy", "zzz");
  • 可选参数
var myname: string = "zhangliang";
function test(a: string, b?: string, c: string="cese") { 
    console.log(a);
    console.log(b);
    console.log(c);
}
test("xxx");

函数新特性

  • Rest and Spread 操作符 - 用来声明任意数量的方法参数
function func1(...args) {
    args.forEach(function (arg) { 
        console.log(arg)
    })
}

func1(1, 2, 3);
func1(7, 8, 9, 10, 11);

//-----------------------
function func1(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
}

var args = [1, 2]
func1(...args);

var args2 = [7, 8, 9, 10, 11];
func1(...args2);

  • generator 函数 - 控制函数的执行过程中, 手工暂停和恢复代码执行
...
  • destructuring 析构表达式 - 通过表达式将对象或数组拆解成任意数量的变量
function getStock() { 
    return {
        code: "IMB",
        price:100
    }
}

var { code, price } = getStock();

//------------------------
function getStock() { 
    return {
        code: "IMB",
        price: {
            price1: 100,
            price2:200
        }
    }
}

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

// ------------------
var array1 = [1, 2, 3, 4]

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

console.log(number1);
console.log(number2);
console.log(others);

表达式和循环

  • 箭头表达式 - 用来声明匿名函数,消除传统匿名函数和this指针问题
var sum = (arg1,arg2) => arg1 + arg2
var sum = arg1 => {
    return arg1
}

// 过滤 复数
var myArray = [1, 2, 3, 4, 5];
console.log(myArray.filter(value => value % 2 == 0));


// 传统方式  this 指向问题
function getStock(name: string) {
    this.name = name;
    setInterval(function () { 
        console.log("name is:"+ this.name)
    },1000)
}

var stock = new getStock("IMB");

// 箭头方式  this 指向问题
function getStock2(name: string) {
    this.name = name;
    setInterval(() => { 
        console.log("name is:"+ this.name)
    },1000)
}

var stock = new getStock2("IMB");
  • 循环 forEach() , for in , for of
// forEach
var myArray = [1, 2, 3, 4];
myArray.desc = "four number";
myArray.forEach(value => console.log(value))
// 输出值 1,2,3,4


// for in
var myArray = [1, 2, 3, 4];
myArray.desc = "four number";

for (var n in myArray) {
    console.log(myArray[n])
}
// 输出值 1,2,3,4,four number


// for  of
var myArray = [1, 2, 3, 4];
myArray.desc = "four number";

for (var n of myArray) {
    console.log(n)
}
// 输出值 1,2,3,4

TypeScript 特征

class Person {
    name;
    eat() { 
        console.log("im eating")
    }
}

var p1 = new Person();

p1.name = "zhangsna"
p1.eat();

相关文章

网友评论

      本文标题:TypeScript 入门

      本文链接:https://www.haomeiwen.com/subject/gniflctx.html