您的位置:首页 > 科技 > 能源 > 免费咨询医疗纠纷律师_邯郸人才网官网_长春关键词优化公司_百度的搜索引擎优化

免费咨询医疗纠纷律师_邯郸人才网官网_长春关键词优化公司_百度的搜索引擎优化

2024/12/23 9:36:00 来源:https://blog.csdn.net/qq_54432917/article/details/144102208  浏览:    关键词:免费咨询医疗纠纷律师_邯郸人才网官网_长春关键词优化公司_百度的搜索引擎优化
免费咨询医疗纠纷律师_邯郸人才网官网_长春关键词优化公司_百度的搜索引擎优化

概述​

TypeScript(简称 TS)是微软公司开发的一种基于 JavaScript (简称 JS)语言的编程语言。

它的目的并不是创造一种全新语言,而是增强 JavaScript 的功能。

TypeScript 继承了 JavaScript 的全部语法,此外它再增加了一些自己的语法。

TypeScript 对 JavaScript 添加的最主要部分,就是一个独立的类型系统。

类型的概念​

类型(type)指的是一组具有相同特征的值。如果两个值具有某种共同的特征,就可以说,它们属于同一种类型。

举例来说,123456这两个值,共同特征是都能进行数值运算,所以都属于“数值”(number)这个类型。

一旦确定某个值的类型,就意味着,这个值具有该类型的所有特征,可以进行该类型的所有运算。凡是适用该类型的地方,都可以使用这个值;凡是不适用该类型的地方,使用这个值都会报错。

下面是一段简单的 TypeScript 代码,演示一下类型系统的作用。

function addOne(n: number) {return n + 1;
}

上面示例中,函数addOne()有一个参数n,类型为数值(number),表示这个位置只能使用数值,传入其他类型的值就会报错。

addOne("hello"); // 报错

上面示例中,函数addOne()传入了一个字符串hello,TypeScript 发现类型不对,就报错了,指出这个位置只能传入数值,不能传入字符串。

JavaScript 语言就没有这个功能,不会检查类型对不对。如果你用JavaScript 的话,万一参数n传了一个不是数值的东西进来,那就完蛋了,JavaScript 是不会提示你传错类型的。

作为比较,TypeScript 是在开发阶段报错,这样有利于提早发现错误,避免使用时报错。另一方面,函数定义里面加入类型,具有提示作用,可以告诉开发者这个函数怎么用。

动态类型与静态类型​

前面说了,TypeScript 的主要功能是为 JavaScript 添加类型系统。大家可能知道,JavaScript 语言本身就有一套自己的类型系统,比如数值123和字符串Hello

但是,JavaScript 的类型系统非常弱,而且没有使用限制,运算符可以接受各种类型的值。在语法上,JavaScript 属于动态类型语言。

请看下面的 JavaScript 代码。

// 例一
let x = 1;
x = "hello";// 例二
let y = { foo: 1 };
delete y.foo;
y.bar = 2;

上面的例一,变量x声明时,值的类型是数值,但是后面可以改成字符串。所以,无法提前知道变量的类型是什么,也就是说,变量的类型是动态的。

上面的例二,变量y是一个对象,有一个属性foo,但是这个属性是可以删掉的,并且还可以新增其他属性。所以,对象有什么属性,这个属性还在不在,也是动态的,没法提前知道。

正是因为存在这些动态变化,所以 JavaScript 的类型系统是动态的,不具有很强的约束性。这对于提前发现代码错误,非常不利。

TypeScript 引入了一个更强大、更严格的类型系统,属于静态类型语言。

上面的代码在 TypeScript 里面都会报错。

// 例一
let x = 1;
x = "hello"; // 报错// 例二
let y = { foo: 1 };
delete y.foo; // 报错
y.bar = 2; // 报错

上面示例中,例一的报错是因为变量赋值时,TypeScript 已经推断确定了类型,后面就不允许再赋值为其他类型的值,即变量的类型是静态的。例二的报错是因为对象的属性也是静态的,不允许随意增删。

TypeScript 的作用,就是为 JavaScript 引入这种静态类型特征。

静态类型的优点​

静态类型有很多好处,这也是 TypeScript 想要达到的目的。

(1)有利于代码的静态分析。

有了静态类型,不必运行代码,就可以确定变量的类型,从而推断代码有没有错误。这就叫做代码的静态分析。

这对于大型项目非常重要,单单在开发阶段运行静态检查,就可以发现很多问题,避免交付有问题的代码,大大降低了线上风险。

(2)有利于发现错误。

由于每个值、每个变量、每个运算符都有严格的类型约束,TypeScript 就能轻松发现拼写错误、语义错误和方法调用错误,节省程序员的时间。而且,一般熟练的开发者往往只看类型,就能大致推断代码的作用,有利于代码的理解,可读性很强。

静态类型的缺点​

静态类型也存在一些缺点。

(1)丧失了动态类型的代码灵活性。

动态类型有非常高的灵活性,给予程序员很大的自由,静态类型将这些灵活性都剥夺了。

(2)增加了编程工作量。

有了类型之后,程序员不仅需要编写功能,还需要编写类型声明,确保类型正确。这增加了不少工作量,有时会显著拖长项目的开发时间。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com