当前位置:首页 > 技术分析 > 正文内容

TypeScript中的类型详解

ruisui881个月前 (05-16)技术分析23

2021年,TypeScript非常火热,前端的各大主流框架和工具,都在向TypeScript靠拢,TypeScript让前端开发复杂大型项目更加严谨。极大的降低了代码出现bug的几率,也大大增强了代码的可维护性和可读性,代码即文档,TypeScript的这一理念,让TypeScript在前端大放异彩。那么接下来,我来讲讲TypeScrpt中的类型。

首先,我们来对比一下JavaScript和TypeScript。

JavaScript易学易用,非常灵活,可以随心所欲写代码,不容易报错。但是复杂代码生产环境容易出现问题,维护成本比较高,也不是非常好排查问题。JavaScript主要用来实现用户和浏览器的交互,实现前端的动态效果,在前端JavaScript是独一无二且不可替代的编程语言。但是JavaScript还是有一些缺陷,如面向对象写起来非常麻烦(es6解决了这个缺点),JavaScript是动态的类型,编辑器的对于类型的提示不是特别完善。那么,TypeScript可以非常完美的解决JavaScript的这些问题。

TypeScript非常严谨,微软在设计TypeScript的时候,就意在解决JavaScript的缺点。TypeScript是以JavaScript为基础构建的编程语言,是JavaScript的超集,对JavaScript进行了扩展,并添加了很多类型,TS支持几乎所有es6+的新特性,开发工具的提示非常友好。但是要注意的是,TS不能直接运行,需要编译成为JS才能运行。


TS的开发环境只需要电脑安装好nodejs,然后使用全局命令安装ts

npm i -g typescript


之后,就可以使用tsc命令,把TS文件,编译为JS文件。

tsc fileName.ts // 编译ts文件 生产对应的js文件


接下来,来看看TS中的类型。

首先,类型声明是TS非常重要的特性,可以指定变量、形参、返回值等等的类型。指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合之前声明的类型,如果符合则通过,不符合,就会报错。类型声明给变量规定了类型,变量就变得像强类型的编程语言一样,只能存储特定类型的值。


语法如下:

let 变量:类型;

let 变量: 类型 = 值;


function fn(参数1:类型,参数2:类型): 类型 {

...

}


其次,TS还有自动类型判断机制,当对变量的声明和赋值同时进行的时候,TS编译器会自动判断变量是什么类型的,如果变量声明和赋值是同时进行的,可以直接省略掉类型声明。


TS完整数据类型如下:

number: 任意数字

let num: number = 100;

string: 任意字符串

let str: string = 'abc'

boolean: 布尔值

let isOk: boolean = true;

字面量: 其本身限制变量的值就是其字面量的值

let skill: 'html' | 'css' | 'javaScript';

any: 任意类型

let temp: any = 10;

temp = 'itsource';

temp = true;

unknown 类型安全的any

let temp: unknown = 4;

temp = 'hello';

void: 空值( undefined )没有值( 或undefined )

let temp: void = undefined;

never没有值不能是任何值

function showError(message: string): never {

throw new Error(message)

}

object: 任意的JavaScript对象

let obj: object = {}

array: 任意js数组

let arr: number[] = [1, 2, 3];

tuple: 元组, TS新增类型,固定长度数组。

let arr: [number, string]

arr = [666, 'abc']

enum: 枚举,TS新增类型。

enum Hob {

Html,

Css,

JavaScript,

}

let hobby: Hob = Hob.JavaScript;

以上,就是TypeScript中完整的数据类型,掌握TypeScript完整数据类型,更有利于用好TypeScript开发大型复杂应用。

更多IT技术请关注源码时代。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4120.html

分享给朋友:

“TypeScript中的类型详解” 的相关文章

快速上手React

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能。对于刚开始学习使用框架的小伙伴们,可以推荐这个框架,学会之后简直能颠覆之前你对前端开发的认...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

vue中router常见的三种传参方式

目录:我们在使用vue开发的过程中使用router跳转的时候肯定会遇到传参的情况;一般情况就三种传参是最常见的;那我们就来看看都有那几种传参方式吧!第一种:{ path: '/mall:id', name: 'Mall', component:...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...