为什么学习typescript
为了更好的开发体验
解决js开发中的难题
function getUserName() {
if(Math.random() < 0.5) {
return ‘yuan jin’
}
return 404;
}
let myname = getUsername();
myname = myname.split(" “)
.filter(it => it)
.map(it => it[0].touperCase() + it.substr(i))
.join(” ");
js开发中的问题
使用了不存在的变量、函数或成员
把一个不确定的类型当作一个确定的类型处理
在使用null或者undefined的成员
const obj = undefined;
console.log(obj.name);
js的原罪
js语言本身的特性,决定了该语言无法适应大型的复杂的项目
弱类型: 某个变量可以随时更换类型
解释型:读一段代码运行一段代码。 只有在运行后才能发现错误
前端开发中,大部分的时间都是在排错
TypeScript
简称Ts
TypeScript 是JS的超集, 是一个可选的,静态的类型系统
超集: 整数是正整数的超集
类型系统
对代码中所有的标识符(变量、函数、返回值)进行类型检查
可选的
学习曲线非常平滑。
静态的(在运行之前)
无论是浏览器环境,还是node环境,无法直接识别ts代码
需要转换成js代码
tsc: ts编译器
静态: 类型检查发生的时间,是在编译的时候, 而非运行时
Ts不参与任何运行时的类型检查
Ts的常识
2012年微软发布
开源、拥抱ES标准
版本3.4
官网:http://www.typescriptlang.org/
中文网: https://www.tslang.cn/ 个人翻译
额外的惊喜
有了类型检查,增强了面向对象的开发
js中也有类和对象,js支持面向对象开发。
使用Ts后,可以编写出完善的面向对象代码