美文网首页CWIKIUS
TypeScript 类型系统

TypeScript 类型系统

作者: HoneyMoose | 来源:发表于2021-11-17 23:27 被阅读0次

针对 JavaScript 上面的问题,聪明的同学就想那我们就给 JavaScript 加个类型吧,和 Java 一样,能够对变量的类型进行定义,这个想法就是 TypeScript 的类型系统, 在很大程度上弥补了 JavaScript 的带来的困惑。

从 TypeScript 的名字就可以看出来,「类型」是其最核心的特性,TypeScript 也主要致力于解决 JavaScript 的类型混乱问题。

TypeScript 是静态类型

类型系统按照「类型检查的时机」来分类,可以分为下面 2 种

动态类型

静态类型

动态类型是指在运行时才会进行类型检查,这种语言的类型错误往往会导致运行时错误。 JavaScript 是一门解释型语言,没有编译阶段(这个就是另外一个针对 Java 同学经常吐槽的地方),所以它是动态类型,以下这段代码在运行时才会报错:

letfoo =1;foo.split(' ');// Uncaught TypeError: foo.split is not a function// 运行时会报错(foo.split 不是一个函数),在运行的时候造成 bug。// 打开你浏览器 F12 看看上面有多少错误你就能了解到了。

静态类型是指编译阶段就能确定每个变量的类型,这种语言的类型错误往往会导致语法错误。TypeScript 在运行前需要先编译为 JavaScript,而在编译阶段就会进行类型检查,所以TypeScript 是静态类型,这段 TypeScript 代码在编译阶段就会报错了:

let foo =1;foo.split(' ');//Property'split'doesnotexist on type'number'.// 编译时会报错(数字没有split方法),无法通过编译

你可能会奇怪,这段 TypeScript 代码看上去和 JavaScript 没有什么区别呀。

没错!大部分 JavaScript 代码都只需要经过少量的修改(或者完全不用修改)就变成 TypeScript 代码,这得益于 TypeScript 强大的[类型推论][],即使不去手动声明变量foo的类型,也能在变量初始化时自动推论出它是一个number类型。

完整的 TypeScript 代码是这样的:

let foo: number =1;foo.split(' ');//Property'split'doesnotexist on type'number'.// 编译时会报错(数字没有split方法),无法通过编译

TypeScript 希望通过上面的配置来增强 JavaScript 的功能。

https://www.ossez.com/t/typescript/13809

相关文章

  • TypeScript 学习纪要

    TypeScript [toc] 什么是 TypeScript? TypeScript 是添加了类型系统的 Jav...

  • TypeScript学习和使用

    1.什么是TypeScript? TypeScript是由微软发明,TypeScript具有类型系统,且是Java...

  • TypeScript 基础类型

    TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript...

  • Flow

    TypeScript 解决javascript 类型系统的问题,TypeScript大大提高代码的可靠程度//...

  • TypeScript - 类型系统

    TypeScript - 类型系统 [TOC] 学习目标 了解类型系统类型标注类型检测的好处使用场景 掌握常用的类...

  • TypeScript 类型系统

    针对 JavaScript 上面的问题,聪明的同学就想那我们就给 JavaScript 加个类型吧,和 Java ...

  • TypeScript简单入门(一):认识TypeScript

    什么是TypeScript 简单来说TypeScript就是添加了类型系统的 JavaScript,适用于任何规模...

  • Typescript --- 基础入门

    Typescript 给 JavaScript 带来了强大的类型系统 类型语言: duck typing 所谓看起...

  • TypeScript入门学习

    一、什么是 TypeScript TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和...

  • typeScript学习(一)

    什么是 TypeScript TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ...

网友评论

    本文标题:TypeScript 类型系统

    本文链接:https://www.haomeiwen.com/subject/nyiktrtx.html