TypeScript:
- 以JavaScript为基础构建的语言,一个JavaScript超集。
- TypeScript扩展了JavaScript并添加了类型(动态类型 --> 静态类型),可以在任何支持JavaScript的平台中执行。
- TS不能被JS解析器直接执行(TS--编译-->JS)
TypeScript在JS的基础上增加了:
- 类型
- 支持ES的新特性,添加ES不具备的新特性
- 丰富的配置选项
- 强大的开发工具
TS开发环境搭建:
1.node环境 2.npm i -g typescript 3.tsc 项目文件
类型声明
let variable: type;
let variable: type = value;//自动类型判断(可省略类型声明)
function fn(parameter1:type,parameter2:type):type{
...
}
type | description | examples |
number | 任意数字 | 1,-2,3.5 |
string | 任意字符串 | "ts","js" |
boolean | true/false | true、false |
字面量 | 限制变量的值就是字面量的值 | 其本身 |
any | 任意类型 | * |
unknown | 类型安全的any(unknown类型的变量不能直接赋值给其他变量) | * |
void | 没有值(或undefined) | 空值(undefined) |
never | 不能是任何值 | 没有值 |
object | 任意的JS对象 | {name:"typescript"} |
array | 任意JS数组 | [1,2,3] |
tuple | 元素,TS新增类型,固定长度数组 | [4,5] |
enum | 枚举,TS新增类型 | enum(A,B) |
unknown类型的变量不能直接赋值给其他变量:
let e:unknown;
let s:string;
solution1:
//类型判断
if(typeof e=== "string"){
s=e;
}
solution2:
//类型断言,可以用来告诉解析器变量的实际类型
/*
*语法:
* 1.变量 as 类型
* 2.<类型>变量
*
* */
s = e as string;
s = <string>e;
TS编译选项
- 自动编译文件 tsc xxx.ts -w
- 自动编译整个项目 需配置文件tsconfig.json
Todo:使用webpack打包ts代码部分看不太懂,后面需补充一下打包部分(vite)的知识,遇到时可再查