TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
首先总结一句话ts是js的超集,这说明ts可以兼容js的语法,大大降低了门槛(哈哈哈)。先说一下我对ts的看法,因为我本是前后端都在使用,感觉ts更像java,比js“强”了许多。
::: hljs-center :::
TypeScript和JavaScript的区别
1、数据类型
js的类型:
boolean类型、number类型、string类型、array类型、undefined、null
js
ts的类型(在js的类型上还包括)
tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)
js
特别的类型
void类型(没有任何类型)表示定义方法没有返回值
never类型:是其他类型(包括null和undefined)的子类型,代表从不会出现的值这意味着声明never变量只能被never类型所赋值
js
关于never类型的详细解释可以看一下vue的作者尤雨溪的回答:TypeScript中的never类型具体有什么用?
需要提醒的是在js中,我们初始化一个对象时(或者称之为数据)时不需要强调他的类型,无论是数组还是字符串,初始化时都可以
let a = '';
let b = [];
js
但是在ts中需要指定数据类型
let a:string = 'abc';
let b:number[] = [1, 2, 3];
let c:Array<number> = [1, 2, 3];
js
是不是更像java了···
2、函数返回值
在js中
function getName() {
return '张三'
}
js
在ts中
function getName():string{
return '张三'
}
js
在ts中需要声明函数返回值的类型
并且,因为ES6的原因,ts的许多标准在js中也已经实现,比如说:
let/const关键字; lambda表达式(箭头函数); class类 ==所以,除强类型与泛型等从C#引入的面向对象特性,js与ts的差异已基本被抹平(当然,也只是以为个人的知识面有限)。==
目前的话,还在处于学习状态,如果有疑问或者意见,可以留言评论,最后希望大家一起学习交流,一起进步!
推荐阅读
1、记录第一次vue3.0+vite+ts+ant 2、引入网易云音乐播放器卡片 3、vue项目集成腾讯滑块验证 4、Navicat Premium 15 永久破解激活工具及安装教程
关注公众号
关注贴吧:pei你看雪吧