TS基础介绍
介绍
- 微软开发
- 开源编程语言
- 遵循es6,es5规范,Ts扩展JS,是超集js
- 更像后端语言,用于开发大型企业项目
- vue,react集成TS
作用
设计目的是解决了JS痛点:
6. 弱类型没有命名空间,导致很难模块化
7. 不适合开发大型程序
8. 提供一些语法糖,方便实践面向对象的编程(类,接口,枚举,泛型,方法重载)
编译运行
- npm install -g typescript
- 手动:tsc *.js
- 自动:配合vscode watch监听具有tsconfig.json
tsc -- init tsconfig.json里面修改输出路劲
TypeScript基础语法
TypeScript程序由以下部分组成:
- 模块
- 函数
- 变量
- 语句和表达式
- 注释
tsc常用编译参数
参数 | 参数说明 |
---|---|
–help | 显示帮助信息 |
–module | 载入扩展模块 |
–target | 设置ECMA版本 |
–declaration | 额外生成一个.d.ts扩展名的文件(会生成两个文件.d.ts和.js) |
–removeComments | 删除文件的注释 |
–out | 编译多个文件并合并到一个输出文件 |
–sourcemap | 生成一个sourcemap(.map)文件。sourcemap是一个存储源代码和编译代码对应闻之映射的信息文件。 |
–module nolmplicitAny | 在表达式和声明上有隐含的any类型时报错 |
–watch | 在监视模式下运行编译器。会监视输出文件,在他们改变时重新编译。 |
##TypeScript保留关键字 | |
语法
- 空白和换行
TS会忽略程序中出现的空格、制表符和换行符(用来缩进代码)。 - TypeScript区分大小写字符
- 分号可选
写在同一行一定要使用分号来分隔,否则会报错(每行指令都是一段语句)。 - 注释
单行注释//;多行注释/* */
TypeScript和面向对象
TS是一种面向对象的编程语言。
面向对象主要有两个概念:对象和类。
- 对象:对象是类的一个实例,有状态和行为。
- 类:类是一个模板,描述一系列对象的行为和状态。
- 方法:方法是类的操作的实现步骤。
基础类型
数据类型 | 关键字 | 描述 |
---|---|---|
任意类型 | any | 声明为any的变量可以赋予任意类型的值。 |
数字类型 | number | 双精度64位浮点值。可以表示整数和分数,进制数。 |
字符串类型 | string | ‘和“表示字符串类型。`定义多行文本和内嵌表达式。 |
布尔类型 | boolean | true和false |
数组类型 | 无 | 声明变量是数组。number[] 或Array<number> |
元组 | 无 | 用来表示已知元素的数量和类型的数组。各元素类型不必相同,对应位置类型需相同。 |
枚举 | enum | 枚举类型用于定义数值集合。enum Color {Red, Green, Blue};let c: Color = Color.Blue;console.log(c); // 输出 2 ?? |
void | void | 用于标识方法返回值的类型,表示该方法没有返回值 。 |
null | null | 空值 |
undefined | undefined | 未定义的值 |
never | never | never是其他类型(包括null和undefined)的子类型,代表从不会出现的值。 |
Any类型
任意值是TS针对编程时类型不明确的变量使用的数据类型,常用于以下情况:
- 变量的值会动态改变,如用户的输入,任意值类型可以让这些变量跳过编译阶段的类型检查。
- 改写现有代码时,任意值允许在编译时可选择地包含或移除类型检查。??
let x: any = 4;
x.ifItExists(); // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
x.toFixed(); // 正确
- 定义存储各种类型数据的数组。
let arr: any[]=[1,false,'']
undefined
null和unde