初始TypeScript

2022-01-17 13:50:26 浏览数 (1)

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

首先总结一句话ts是js的超集,这说明ts可以兼容js的语法,大大降低了门槛(哈哈哈)。先说一下我对ts的看法,因为我本是前后端都在使用,感觉ts更像java,比js“强”了许多。

TypeScript和JavaScript的区别

1、数据类型

js的类型:

代码语言:javascript复制
boolean类型、number类型、string类型、array类型、undefined、null
复制

ts的类型(在js的类型上还包括)

代码语言:javascript复制
tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)
复制

特别的类型

代码语言:javascript复制
void类型(没有任何类型)表示定义方法没有返回值
never类型:是其他类型(包括null和undefined)的子类型,代表从不会出现的值这意味着声明never变量只能被never类型所赋值
复制

关于never类型的详细解释可以看一下vue的作者尤雨溪的回答:TypeScript中的never类型具体有什么用?

需要提醒的是在js中,我们初始化一个对象时(或者称之为数据)时不需要强调他的类型,无论是数组还是字符串,初始化时都可以

代码语言:javascript复制
let a = '';
let b = [];
复制

但是在ts中需要指定数据类型

代码语言:javascript复制
let a:string = 'abc';
let b:number[] = [1, 2, 3];
let c:Array<number> = [1, 2, 3];
复制

是不是更像java了···

2、函数返回值

在js中

代码语言:javascript复制
function getName() {
	return '张三'
}
复制

在ts中

代码语言:javascript复制
function getName():string{
        return '张三'
}
复制

在ts中需要声明函数返回值的类型

并且,因为ES6的原因,ts的许多标准在js中也已经实现,比如说:

let/const关键字; lambda表达式(箭头函数); class类 所以,除强类型与泛型等从C#引入的面向对象特性,js与ts的差异已基本被抹平(当然,也只是以为个人的知识面有限)。

目前的话,还在处于学习状态,如果有疑问或者意见,可以留言评论,最后希望大家一起学习交流,一起进步!

0 人点赞