# 什么是 TypeScript
添加了 类型系统 的 JavaScript ,适用于任何规模的项目
# 特性
# 类型系统
按照 类型检查时机, 分为 动态类型 和 静态类型
动态类型,运行时才会进行类型检查,类型错误导致运行错误,JavaScript 是动态类型
静态类型,编译阶段确定每个变量的类型,类型错误导致语法错误,TypeScript是静态类型
let foo = 1;
foo.split(' ');
// JavaScript
// Uncaught TypeError: foo.split is not a function
// 运行时会报错(foo.split 不是一个函数),造成线上 bug
// TypeScript
// Property 'split' does not exist on type 'number'.
// 编译时会报错(数字没有 split 方法),无法通过编译
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
按照 是否允许隐式类型转换,分为强类型和弱类型
Typescript 和 JavaScript 都是弱类型
# TypeScript 完全兼容 JavaScript,不会修改 JavaScript 运行时特性
# TypeScript 可以编译为 JavaScript,然后在任何能运行 JavaScript 的环境中
# 与 JavaScript 的区别
TypeScript | JavaScript |
---|---|
类型约束 | 无类型约束 |
隐式类型转换,编译时可以确定 | 隐式类型转换,无法在编译时确定 |
编译时对类型静态检查 | 运行时才会检查 |
# 收获
了解 类型系统
了解 TypeScript 和 JavaScript 的区别
原始数据类型 →