TypeScript:熟练掌握TypeScript(一)

简介: TypeScript:熟练掌握TypeScript(一)

一、TypeScript简介

TypeScript 是一种由 Microsoft 开发的静态类型编程语言,它是 JavaScript 的超集,意味着它包含了 JavaScript 中所有的特性并且添加了更多的功能。

TypeScript 的主要特点是静态类型检查,可以在编译时发现类型错误,而不是在运行时;还有类、接口、命名空间、泛型等多种功能,可以提高代码的可读性、可维护性和重用性。

TypeScript 可以运行在任何支持 JavaScript 的平台上,包括浏览器、Node.js、移动应用和服务器应用等。它可以使用 JavaScript 的任何库和框架,并且支持类型声明文件,可以为第三方库提供类型定义,以便在开发时提供更好的代码补全和语法检查。

相对于 JavaScript,TypeScript 需要额外的编译过程,将 TypeScript 代码编译成 JavaScript 代码,但这个过程可以使用 TypeScript 提供的编译工具自动完成,无需手动操作。

总的来说,TypeScript 是一种可靠、可扩展、易于维护的编程语言,适合用于大型项目的开发和维护,并且可以与 JavaScript 无缝集成。

简单理解就是:

TypeScript (简称:TS)是JavaScript的超集 (JS有的TS 都有)。

TypeScript=Type +JavaScript (在JS 基础之上,为JS添加了类型支持)。

TypeScript 教程 | 菜鸟教程

哔哩哔哩_教程_TypeScript

二、TypeScript为什么要为js增加类型支持?

背景:JS的类型系统存在“先天缺陷”,J5代码中绝大部分错误都是类型错误(UncaughtTypeError)。

问题:增加了找 Bug、改 Bug 的时间,严重影响开发效率。

从编程语言的动静来区分,TypeScript属于静态类型的编程语言,JS属于动态类型的编程语言。

静态类型:编译期做类型检查;

动态类型:执行期做类型检查代码;

编译和代码执行的顺序:1编译 2执行。

对于JS来说:需要等到代码真正去执行的时候才能发现错误 (晚)。

对于TS来说:在代码编译的时候 (代码执行前)就可以发现错误 (早)。

并且,配合VSCode 等开发工具,T5 可以提前到在编写代码的同时就发现代码中的错误,减少找 Bug、改Bug 时间。

三、TypeScript 对比 JS 的优势

3.1、更早 (写代码的同时)发现错误,减少找 Bug、改 Bug 时间,提升开发效率。

3.2、程序中任何位置的代码都有代码提示,随时随地的安全感,增强了开发体验和信心。

3.3、强大的类型系统提升了代码的可维护性,使得重构代码更加容易。

3.4、支持最新的 ECMAScript 语法,优先体验最新的语法,让你走在前端技术的最前沿。

3.5、 类型推断机制,不需要在代码中的每个地方都显示标注类型,让你在享受优势的同时,尽量降低了成本。

3.6、Vue3源码使用TS重写、Angular默认支持TS、React与TS完美配合,TypeScript已成为大中型前端项目的首选编程语言。

四、安装TypeScript

4.1、通过npm(Node.js包管理器)

npm install -g typescript

yarn add -g typescript

pnpm add -g typescript

4.2、查看版本

tsc -v

4.3、ts-node ,不需要每次修改都执行ts文件,可以简化操作。

pnpm add ts-node

4.4、使用

ts-node hello.ts

 

五、在命令行里边执行ts文件

tsc test.ts

六、语法学习

6.1、理解类型声明

<template>
    <div>
        <h1>TypeSctipt</h1>
        <div>{{ age }}</div>
    </div>
</template>
<script setup lang="ts">
// 有明确的类型,即: number
let age: number = 20
</script>
<style scoped>
</style>

6.2、常用类型概述

TypeScript是JS的超集,TS提供了JS的所有功能,并且额外的增加了:类型系统。

所有的JS代码都是TS代码。

JS有类型(比如,number/string等),但是JS不会检查变量的类型是否发生变量。而TS会检查。

TypeScript类型系统的主要优势:可以显示标记处代码中的意外行为,从而降低了发生错误的可能性。

6.3、类型注解

let name: string = 'snow'

说明:代码中的 string 就是类型注解。

作用:为变量添加类型约束。比如,上述代码中,约定变量name的类型为string(字符串类型)。

解释:约定了什么类型,就只能给变量赋值该类型的值, 否则就会报错。

6.4、常用类型分类

JS已有类型

原始类型:number、string、boolean、null、undefined、symbol

对象类型:object(包括:数组、对象、函数)

TS新增类型

联合类型、自定义类型(类型别名)、接口、元组、字面量类型、枚举、void、any等。

6.5、原始类型

原始类型:number、string、boolean、null、undefined、symbol

特点:简单。这些类型,完全按照js中类型的名称来书写。

let age: number = 18
let name: string = 'snow'
let isLoading: boolean = false
let a: null = null
let b: undefined = undefined
let c: symbol = Symbol()
// 等等...

6.6、数组类型

let numbers: number[] = [1, 2, 3] // 推荐用法,使用直观
let strings: Array<string> = ['a', 'b', 'c']
// 数组中既有number类型,又有string类型
let arr: (number | string)[] = [1, 2, 3, 'a', 'b', 'c']
// 解释:| (竖线)在TS中叫做联合类型(由两个或多个其他类型组成的类型,表示可以是这些类型中的任意一种)。
// 注意:这是TS中的联合类型的语法,只有一根竖线,不要与js中的或(|)混淆了。
let b: boolean[] = [true, false, true, false]

6.7、联合类型

需求:数组中既有 number 类型,又有 string 类型,这个数组的类型应该如何写?

let arr: (number | string)[] = [1, 2, 3, 'a', 'b', 'c'] // 正确
let arr1: number | string[] = 123 // 正确
let arr2: number | string[] = ['a', 'b', 'c'] // 正确
let arr3: number | string[] = [1, 2, 3] // 错误

解释:| (竖线)在TS中叫做联合类型,由两个或多个其他类型组成的类型,表示可以是这些类型中的任意一种。

注意:这是TS中联合类型的语法,只有一根竖线,不要与JS中的(||)混淆了。


相关文章
|
JavaScript 前端开发 编译器
TypeScript:熟练掌握TypeScript(四)
TypeScript:熟练掌握TypeScript(四)
125 0
|
JavaScript 前端开发 Java
TypeScript:熟练掌握TypeScript(三)
TypeScript:熟练掌握TypeScript(三)
175 0
|
JavaScript 索引
TypeScript:熟练掌握TypeScript(二)
TypeScript:熟练掌握TypeScript(二)
136 0
|
13天前
|
存储 安全 JavaScript
TypeScript-内置应用程序类型-Recode
通过使用 `Record` 类型,开发者可以显著提升代码的安全性和可维护性。无论是配置对象、字典结构还是动态表单,`Record` 类型都提供了一个简洁、类型安全的解决方案。
187 82
|
4月前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
82 0
|
4月前
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧
|
5月前
|
存储 JavaScript
typeScript进阶(11)_元组类型
本文介绍了TypeScript中的元组(Tuple)类型,它是一种特殊的数组类型,可以存储不同类型的元素。文章通过示例展示了如何声明元组类型以及如何给元组赋值。元组类型在定义时需要指定数组中每一项的类型,且在赋值时必须满足这些类型约束。此外,还探讨了如何给元组类型添加额外的元素,这些元素必须符合元组类型中定义的类型联合。
73 0
|
5月前
|
JavaScript
typeScript进阶(10)_字符串字面量类型
本文介绍了TypeScript中的字符串字面量类型,这种类型用来限制变量只能是某些特定的字符串字面量。通过使用`type`关键字声明,可以确保变量的值限定在预定义的字符串字面量集合中。文章通过示例代码展示了如何声明和使用字符串字面量类型,并说明了它在函数默认参数中的应用。
63 0
|
3月前
|
设计模式 JavaScript 安全
TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等
本文深入探讨了TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等,旨在帮助开发者在保证代码质量的同时,实现高效的性能优化,提升用户体验和项目稳定性。
70 6
|
3月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
64 2