尚硅谷TypeScript教程讲义文档分享和学习笔记分享

前言

各位读者好,我正在努力学习前端中,这里是我根据尚硅谷讲课课件分享的基础上划出一些的重点和细节添加的学习笔记分享,希望能够对大家有用。

我学习的视频链接是尚硅谷TypeScript教程

此外,我还有其它前端内容的笔记,大家有需要的可以自行查找。

用PC端阅读效果更佳。

第一章 快速入门

0、TypeScript简介

  1. TypeScript是JavaScript的超集。
  2. 它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。
  3. TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。
  4. TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用。
  5. 相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能;TS可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题;同样的功能,TS的代码量要大于JS,但由于TS的代码结构更加清晰,变量类型更加明确,在后期代码的维护中TS却远远胜于JS。

1、TypeScript 开发环境搭建

  1. 下载Node.js

    • 64位:https://nodejs.org/dist/v14.15.1/node-v14.15.1-x64.msi
    • 32位:https://nodejs.org/dist/v14.15.1/node-v14.15.1-x86.msi
  2. 安装Node.js

  3. 使用npm全局安装typescript

    • 进入命令行
    • 输入:npm i -g typescript
  4. 创建一个ts文件

  5. 使用tsc对ts文件进行编译

    • 进入命令行

    • 进入ts文件所在目录

    • 执行命令:tsc xxx.ts
      注意:进入命令行可以通过右键“在终端中打开”进入,也可以在“windows + R”,再输入cmd得到。

下发结果表示第三步安装成功,两种皆可
在这里插入图片描述
在这里插入图片描述
第五步
在这里插入图片描述

2、基本类型

  • 类型声明

    • 类型声明是TS非常重要的一个特点

    • 通过类型声明可以指定TS中变量(参数、形参)的类型

    • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错

    • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值

    • 语法:

      • let 变量: 类型;
        
        let 变量: 类型 =;
        
        function fn(参数: 类型, 参数: 类型): 类型{
                 
            ...
        }
        
  • 自动类型判断

    • TS拥有自动的类型判断机制
    • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
    • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明
  • 类型:

    类型 例子 描述
    number 1, -33, 2.5 任意数字
    string ‘hi’, “hi”, hi 任意字符串
    boolean true、false 布尔值true或false
    字面量 其本身 限制变量的值就是该字面量的值
    any * 任意类型
    unknown * 类型安全的any
    void 空值(undefined) 没有值(或undefined)
    never 没有值 不能是任何值
    object {name:‘孙悟空’} 任意的JS对象
    array [1,2,3] 任意JS数组
    tuple [4,5] 元素,TS新增类型,固定长度数组
    enum enum{A, B} 枚举,TS中新增类型
  • number

    • let decimal: number = 6;
      let hex: number = 0xf00d;
      let binary: number = 0b1010;
      let octal: number = 0o744;
      let big: bigint = 100n;
      
  • boolean

    • let isDone: boolean = false;
      
  • string

    • let color: string = "blue";
      color = 'red';
      
      let fullName: string = `Bob Bobbington`;
      let age: number = 37;
      let sentence: string = `Hello, my name is ${
               fullName}.
      
      I'll be ${
               age + 1} years old next month.`;
      
  • 字面量

    • 也可以使用字面量去指定变量的类型,通过字面量可以确定变量的取值范围

    • let color: 'red' | 'blue' | 'black';
      let num: 1 | 2 | 3 | 4 | 5;
      

注意:例如在这里num只能在四个数字中选择

  • any

    • let d: any = 4;
      d = 'hello';
      d = true;
      

    注意:any可以将任意值赋给变量

  • unknown

    • let notSure: unknown = 4;
      notSure = 'hello';
      

注意:unkown也是可以将任意值赋给变量,但不能将确定类型的变量赋给unknown,比如 如下
let e:unknown;
e = 10;
let s: string;
e = ‘hello’;
s = e; //这样是不行的,unknown不能直接赋值给其它类型
解决办法如下

在这里插入图片描述

  • void

    • let unusable: void = undefined;
      function fn():void{
             
      
      }
      

注意:主要用于函数,目的是返回值为空,或者没有返回值。

  • never

    • function error(message: string): never {
             
        throw new Error(message);
      }
      

注意:表示永远没有返回值,主要用于报错,停止代码运行

  • object(没啥用)

    • let obj: object = {
             };
      //{}用来制定对象可以包含那些属性
      //一旦定义时,就必须在赋值时考虑,不然要报错。不过在属性名后边加上?表示可选
      let b : {
              name: string, age? : number}
      b = {
             name: '孙悟空'}
      

注意:
在这里插入图片描述

  • array

    • let list: number[] = [1, 2, 3];
      //对于TS中的数组要提前声明数组的类型
      let list: Array<number> = [1, 2, 3];
      
  • tuple

    • let x: [string, number];
      //元组是固定长度的数组,不可少元素,也不可多元素
      x = ["hello", 10]; 
      
  • enum

    • enum Color {
             
        Red,
        Green,
        Blue,
      }
      let c: Color = Color.Green;
      
      enum Color {
             
        Red = 1,
        Green,
        Blue,
      }
      let c: Color = Color.Green;
      
      enum Color {
             
        Red = 1,
        Green = 2,
        Blue =
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子与金与玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值