官网文档📄
举荐√
:微软 ( 最新):https://www.typescriptlang.org/
国内(相比落后几个版本):https://www.tslang.cn/
为什么要学习😶🌫️
为了好工作,国内很多公司都在应用 ts 了,会 ts 有劣势
这门语言带了更好的开发体验,进步开发效率
解决 js 中的难以解决的问题
节俭在开发中排错的大部分工夫,尤其是大型项目中
js 语言的问题🤔
- 片段一
function getName() {if (Math.random() < 0.5) {return "yuan jin"}
return 404
}
let myname = getUsername()
mynema = myname.split(" ")
.filter(it => it)
.map(it => it[0].touppercase() + it.subStr(1))
.join(" ")
-
片段二
// 这只是示例,咱们开发过程中,变量的值个别是接口获取的数据或在一大段代码里混着,极易产生谬误 const obj = undefined console.log(obj.name)
- 能够看到咱们创立的
ts 文件
,间接把各种问题都裸露进去了,包含应用不存在的变量, 函数,或成员
,把一个确定的类型当作一个确定的类型解决
,应用值为 null, 或 undefined 的成员去当成对象等其余去应用
, 当然还有其余比方变量的类型不确定性,赋值不同的类型的值
,全局变量的反复定义
- 比方咱们在测试环境写了一大段代码,过后测试时没发现写错了,后果上线却发现有问题,这是十分可怕的。所以
ts
很好的发现了 99% 人工不没发现的小问题。
js 的原罪🎃
- js 语言的过后是只用了
两周
赶出来的语言,为了在浏览器实现小的成果. 所以 js 语言自身的个性,决定了该语言无奈适应大型的我的项目 - 是属于弱类型语言: 变量能够随时更换类型
- 解释性: 谬误的产生在
运行时
运行后能力晓得谬误在哪。而java
等其余语言是编译型
,编译时就会发现错误
Ts 语言的特点🏵️
- TypeScript 是 JS 的超集 (
还是用 js 语言去编写,内容包含 js, e5, es6...,只是在此基础上减少了扩大,比方类型零碎
), 是一个可选的(ts 文件中,能够加类型查看,也能够不加,ts 会主动推算出以后的变量的类型
),动态(编写代码的时候类型查看,不是在运行时
) 的类型零碎 - 对代码中的所有标识符 (变量, 函数,参数,返回值) 进行类型查看
不须要
对之前的 js 文件破坏性的革新,学习曲线平滑,只须要将文件后缀改成 ts
,就会主动加上谬误查看
- 浏览器环境,node 环境无奈间接辨认 ts 代码,须要应用
tsc 命令 -ts 编译器转化为 es
- ts 不参加运行, 打包后的类型查看,
只在编译 - 编写代码时
Ts 的常识🍵
2012 年由微软公布,由 anders 主导开发。目标为了解决 js 编写的痛点,进步开发效率
开源,拥抱 ES 规范,蕴含最新 ES
额定的惊喜🎉
因为 js
没有类型查看,所以在 js
中很多面向对象的场景实现起来有诸多问题, TS
能够编写欠缺的面向对象代码
有了类型查看,耳濡目染的加强了咱们的面向对象的开发的思维!!!