为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript极速入门

难度初级
时长 2小时39分
学习人数
综合评分10.00
3人评价 查看评价
10.0 内容实用
10.0 简洁易懂
10.0 逻辑清晰
  • 来了

    查看全部
  • 枚举类型

    1、数字枚举

    enum numEnum{
      Pending, // 0
      Shipped, // 1
      Completed, // 2
      Cancelled, // 3
      Unknown // 4
    }

    2、字符串枚举

    enum strEnum{
      Pending = 'Pending',
      Shipped = 'Shipped',
      Completed = 'Completed',
      Cancelled = 'Cancelled',
      Unknown = 'Unknown'
    }

    3、异构枚举

    // 异构枚举就是枚举值中成员值既有数字类型又有字符串类型(但是不能有值是空的)
    // 异构 isomerism
    enum isomerismEnum{
      Pending = 'Pending',
      Shipped = 'Shipped',
      Completed = 2,
      Cancelled = 'Cancelled',
      Unknown = 'Unknown'
    }

    4、常量枚举

    // 常量枚举,就是在定义枚举的语句之前加上const 关键字,这样编译后的代码不会创建这个对象,只是会从枚举里拿到相应的值进行替换
    enum Status {
      Off,
      On
    }
    const enum Animal {
      Dog,
      Cat
    }
    const status = Status.On;
    const animal = Animal.Dog;

    上面的代码编译成 JavaScript 之后是这样的:

    var Status;
    (function(Status) {
      Status[(Status["Off"] = 0)] = "Off";
      Status[(Status["On"] = 1)] = "On";
    })(Status || (Status = {}));
    var status = Status.On;
    var animal = 0; // Dog

    注意,枚举值是只读的,不能够修改。

    二、表驱动

    表驱动,就是为了去除if...else.. 和switch 这种语法的。

    查看全部
  • TS 变量声明格式:变量名 + 类型注解。

    当变量赋值与声明类型不一致的时候,TS 会提醒类型校验不一致。

    const aNum: number = 123; // 数字类型
    const aStr: string = 'Hello ts'; // 字符串类型
    const aBool: bool = true; // 布尔类型
    const aNull:null = null; // null 类型,值只能是null
    const aUndefined: undefined = undefined; // undefined 类型,值只能是undefined
    const aSymbol: symbol = Symbol(); // symbol 类型,表示独一无二,每次声明的数据都是不同的
    const bSymbol: symbol = Symbol(); // 用作私有属性、解决命名冲突问题
    console.log(aSymbol === bSymbol); // 输出 false
    console.log(Number.MAX_VALUE); // JS 支持的最大数值:Number.MAX_VALUE
    const aBigint:bigint = 123456789123456789n; // 处理比JS支持最大的数还大的数值
    const bBigint: bigint = Bigint(123456789123456789); // 两种定义Bigint 变量的方法
    const sArr: string[] = ['a', 'b', 'c']; // 字符串数组
    const nArr: number[] = [1, 2, 3]; // 数字数组
    const bsArr: Array<string> = ['a', 'b', 'c']; // 包装类型
    const bnArr: Array<number> = [1, 2, 3]; // 包装类型
    const lhArr: Array<number | string> = [1, 2, 3, '4']; // 联合类型
    const aTuple: [string, number] = ['a', 1]; // tuple 元组类型,是特殊的数组,显式的定义数组每一项元素类型和元素数量上限,并且一一对应。
    aTuple.push(8); // 元组可以添加元素,但是不能读
    aTuple[2]; // 会提醒 Tuple type '[string, number]' of length '2' has no element at index '2'
    const bTuple: [string, number, number] = ['abc', 1, 8]; // tuple 元组新增元素,要一一对应
    
    // 函数定义,一般两种类型:箭头函数、function
    // 一、箭头函数
    const aFun = () => false; 
    // 函数类型定义
    const aFun: () => boolean = () => false; // `() => boolean` 就是定义的函数类型
    // 如果有参数
    const aFun: (params: string) => boolean = () => false; // `(params: string) => boolean` 就是定义的函数类型
    // 二、普通function 函数
    function bFun() {
        return true;
    } 
    // 函数类型定义
    function bFun(params: string): boolean {
        return true;
    }
    // 推荐使用箭头函数,方便提取函数类型定义
    type Fun = (params: string) => boolean;
    const cFun: Fun = () => false;
    const dFun: Fun = () => false;
    type Fun = (params: string) => void; // 如果函数没有返回值
    
    
    // 对象,这样定义比较宽泛
    const aObj: object = {
        a: 1,
        b: 2
    }
    // 对象,类型定义越具体越好,工作中一般如下定义
    const bObj: { a: string, b: string } = {
        a: 'hello',
        b: 'world'
    }
    // 对象定义类型也可以提取,用interface
    interface Obj { a: string, b: string }
    const cObj: Obj = { a: 'hi', b: 'typescript' }
    
    // void 类型,没有任何返回值
    // 注意以下返回值为空的函数类型定义方式
    const aVoid = (): void => {};
    const bVoid: () => void = () => {}
    type Fun = (params: string) => void;
    const cVoid: Fun = () => {}
    
    // any 就相当于没有类型定义,和js 一样了,可以随便赋值。
    
    // never 永远没有返回值,一般高级编程会用,日常很少
    const aNever = (): never => {
        throw new Error()
    }
    const bNever = (): never => {
        while(true) {}
    }
    查看全部
  • 在线学习Typescript 的网站:

    TS 官方网:https://www.typescriptlang.org/  

    导航菜单选择-> Playground 即可在线开发学习。


    npm 搭建适合TS 开发环境:

    1. npm init 初始化前端开发环境
    2. npm i typescript -g 全局安装TS
    3. tsc --init 生成初始化TS 配置文件
    4. package.json 文件,添加 scripts 命令:`"build": "tsc"`
    5. tsconfig.json 文件,修改 `"outDir": "编译后生成js 的存放位置"`
    查看全部
  • 定义变量的类型,意味着什么?

    以Number 类型为例:

    内存大小:64个bit 代表一个Number 类型 ;

    内存布局:总共0~64 个Bit,第63 位表示正负号S、52~62 位表示指数级E、0~51 位表示真实的数字M;

    变量行为:即可操作的方法,如:toFixed。

    弱类型变量,会根据代码情景,自动转换变量类型。


    typeof 用于判断变量类型。

    var num = 0;
    console.log(typeof num);

    TS 强制类型转换:

    let a: any = 1;
    (a as string) = '2';
    // 注意:强制类型转换使用as 和 括号()

    JS 和 TS 都有类型系统,区别是:

    JS 是弱类型 + 动态类型语言

    TS 是强类型 + 静态类型语言

    查看全部
    0 采集 收起 来源:什么是类型

    2023-11-24

  • Typescript

    考量项目中是否需要使用。

    查看全部
  • 课程介绍

    课程介绍

    介绍介绍

    啦啦啦啊

    https://img1.sycdn.imooc.com/65556e2c0001af7005300197.jpg

    课程要点

    查看全部
    0 采集 收起 来源:学前准备

    2023-11-16

  • 开始了

    查看全部
    0 采集 收起 来源:学前准备

    2023-11-15

  • 1,表驱动:   

    const orderHandlers: Record<number, (order: Order)=> void> = {

      [OrderStatus.Pending]: function (order){

      },

      [OrderStatus.Shipped]: function (order){

      },

    }


    2,枚举类型、常量枚举    区别在于生成 JS 代码, 常量枚举使用常量替换类型。


    enum OrderStatus{

    }  


     const enum OrderStatus{

    }

    查看全部
  • 1,学习环境, Playground 

       https://typescript.org/play


    2, 构建 NPM 包的环境

         问题1:如何配置生成 .D.TS 文件?


          npm init     --> package.json 

          npm i typescript -g 安装TS

          tsc --init    --> tsconfig.json

                 package.json  ---> scription  --> build : ts


           npm run build

                  tsconfig.json  ---> outDir : "lib"


    3,前端项目环境

           npm create vite@latest

           npm create vite@latest my-vue-app --template vue

    查看全部
    0 采集 收起 来源:构建 TypeScript 的开发环境

    笔记审核中笔记正在审核中,仅自己可见 2023-11-13

  • 1, 业务问题

          需要根据行业人员进行沟通   

         

    2,技术问题

         1), 程序员的基本盘: 质量、稳定性、效率、体验

          2), JS 代码的可读性差,会带来质量和稳定性危机。

          3),轻文档,重代码规范,提高代码的可读性。

          4),JS 太灵活,没有太多插件可用,开发体验和效率都很差。

          5),TS 有类型定义,强类型约束,导致有较多的可用的插件,方便开发。

    查看全部
  • shishi 

    查看全部
首页上一页123下一页尾页

举报

0/150
提交
取消
课程须知
掌握前 npm 包的使用,了解 JavaScript 基础,如果有面向对象开发经验,学习效果更佳
老师告诉你能学到什么?
你能学到 Typescript 的基础概念、写法,类型的原理,以及在业务中真正实用的高级类型使用方法,更能通过泛型的学习,开启类型编程的大门。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!