TS —— 1、定义、泛型、类、枚举、元组、抽象

目录

42、TypeScript

(1)JavaScript 与 TypeScript 的区别

(2)优势、缺点

(4)安装

(5)查看版本

(6)编译

(7)写法

(8)为什么要用到TS

 (9)定义

1.类型定义

(1)联合类型

 (2)任意类型

2.数组类型

(1)方式一:数组

(2)方式二:泛型

3.面向对象—接口类型

(1)接口的定义:

(2)可选属性:

(3)任意属性 :(一个接口允许随便加)

(4)泛型(常用)

 4.函数类型

(1)参数默认值

(2)可选参数

(3)接口在函数中的运用

(4)注意:length

(10)泛型

1.泛型类

2.什么时候需要定义泛型函数

3.泛型约束

(1)接口(常用)

 (2)数组

(3)类

(4)多个类型参数

(11)类型别名

(12)类

1.定义类

(1)ES5(构造函数)

(2)ES6

2.类的继承

3.修饰符

 4.类的类型

5.类实现接口

6.一个类可以实现多个接口

 (13)枚举

(14)元组

(15)抽象类abstract


42、TypeScript

TypeScript是.ts文件,与.js相似,但只是用来编写代码,运行还是在.js中(下面优势与缺点)

TypeScript 是一种由微软开发的自由开源的编程语言,他是JavaScript的一个超集,扩展了JavaScript的 语法,主要提供了类型系统和对 ES6 的支持。

TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

(1)JavaScript 与 TypeScript 的区别

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与

TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。

TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

(2)优势、缺点

优点:

强大的IDE支持:体现在三个特性上:

1.类型检查,在TS中允许你为变量指定类型(js文件不会)

2.语法提示(js文件不会)

3.重构Angular2、vue3的开发语言

 //分别在两个文件中

缺点:

有一定的学习成本,需要理解

接口(Interfaces)、

泛型(Generics)、      

类(Classes)、

枚举类型(Enums)等前端开发可能不是很熟悉的知识点

(3)编辑器

TypeScript 最大的优势之一便是增强了编辑器和 IDE 的功能,包括代码补全、接口提示、跳转到定义、重构等。

主流的编辑器都支持 TypeScript,推荐使用 Visual Studio Code。

获取其他编辑器或 IDE 对 TypeScript 的支持:

Sublime Text

Atom

WebStorm

Vim

Emacs

Eclipse

Visual Studio 2015

Visual Studio 2013

(4)安装

npm install -g typescript

以上命令会在全局环境下安装 tsc 命令,安装完成之后,我们就可以在任何地方执行 tsc 命令了

(5)查看版本

tsc -v

(6)编译

编译一个 TypeScript 文件

tsc hello.ts

使用 TypeScript 编写的文件以 .ts 为后缀

(7)写法

使用 :(冒号) 指定变量的类型,: 的前后有没有空格都可以

也就是说 :(冒号)后面的是类型

    let num:number = 15;
    num(变量名):number(类型) = 15(具体值)
    // 表示定义一个变量num,指定类型为number;
    let str:string = 'abc';
    // 表示定义一个变量str,指定类型为string;

 //.ts文件中这样写不会报错

 

  //自动生成一个同名的.js文件

 

(8)为什么要用到TS

    //定义一个函数计算二个数据的合计
    function sum(x, y) {
        if (typeof x != 'number') { //对于形参的类型要添加转换
            x = parseInt(x);
        }
        return x + y
    };
    sum('1', 2);	//3
    //TS的方式,直接约束了类型

 (9)定义

1.类型定义

    let flag: boolean = false; //布尔类型
    let num: number = 15; //数值类型
    let str: string = 'abc'; //字符串类型
    let str2: string = `hello,${str}`;
    let msg: string = `hello,${str},${num}`;
    let u: undefined = undefined;
    let n: null = null;

(1)联合类型

表示取值可以为多种类型中的一种

    let a4: string | number;	//a4为多个类型
    a4 = 'seven';
    a4 = 7;

 //提示错误(布尔类型)

    function getLength(str: string | number): number {	//第二个number是返回类型
        return str.length; //length提示错误,为什么?
    }
    console.log(getLength(123));
    //当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,只能访问此联合类型的所有类型里共有的属性或方法
===================================================================================
	//解决
    function getLength(str: string | number[]): number {
        return str.length;
    }
    console.log(getLength([1, 2, 3]));

 (2)任意类型

如果是一个普通类型,在赋值过程中改变类型是不被允许的,任意值(Any)用来表示允许赋值为任意类型

    let a1: string = 'seven';
    a1 = 7;	//提示错误
    //但如果是 any 类型,则允许被赋值为任意类型
    let a2: any = 'seven';
    a2 = 7;
-----------------------------------------------------------------------------------
    //变量如果在声明的时候,未指
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值