TypeScript 中静态类型和动态类型

静态类型:
对于静态语言最主要表现就是一个变量,声明时它的类型就明确的,而且呢,在变量声明过后它的类型就不允许被修改了。

动态类型:
动态类型语言就是在运行阶段才能够明确一个类型,而且变量的类型也可以随时发生变化。

静态类型与动态类型
JavaScript 使用动态类型,而 TypeScript 使用静态类型。使用动态类型,您可以重新分配变量,因为数据类型可以更改。这在静态类型中是不可能的,因为定义了数据类型意味着如果您尝试分配不同的数据类型,它将显示编译错误。所以静态类型能使错误更早得暴露,代码更智能,编码更准确。在代码可靠程度上是比动态类型有明显的优势。

// This is valid JavaScript code
let num = 10;
num = "10";
// You will get the error Type 'string' is not assignable to type 'number'.
let num: number = 10;
num = "10";

最后 JavaScript为什么没有静态类型
JavaScript是一门脚本语言,那脚本语言的特点就是可以直接在运行中去运行,换句话说,JavaScript他是没有编译环节的,那即便把它设计成一个静态类型,语言也没有意义,因为静态类型语言需要在编译阶段去做类型检查,而JavaScript没有编译环境,根据以上这些原因JavaScript成为了一门灵活的弱类型/动态类型语言.
而TypeScript是需要编译成JavaScript后才在浏览器中运行的,所以他会在编译的过程中抛出错误。

你可能感兴趣的:(typescript,javascript,前端)