前端 TS

news2024/5/18 15:50:23
  • 类型:

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

    • number

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

      let isDone: boolean = false;
      
    • string

      let color: string = "blue";
      color = 'red';
      
    • 字面量

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

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

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

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

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

      function error(message: string): never {
         throw new Error(message);
      }
      
    • object(没啥用)

      let obj: object = {};
      
    • array

      let list: number[] = [1, 2, 3];
      let list: Array<number> = [1, 2, 3];
      
    • tuple

      let x: [string, number];
      x = ["hello", 10]; 
      
    • enum

      enum Color {
         Red,   // 0
         Green, // 1
         Blue,  // 2
      }
      let c: Color = Color.Green;
      
      enum Color {
         Red = 1,  // 1
         Green,    // 2
         Blue,     // 3
      }
      let c: Color = Color.Green;
      
      enum Color {
         Red = 1,    // 1
         Green = 2,  // 2
         Blue = 4,   // 4
      }
      let c: Color = Color.Green;
      
  • 断言

          //写法1
          let someValue: unknown = "this is a string";
          let strLength: number = (someValue as string).length;
          //写法2
          let someValue: unknown = "this is a string";
          let strLength: number = (<string>someValue).length;
          ```
    
  • 接口

    • 接口的作用类似于没有实际值的抽象类
    • 可以用于定义对象,方法的参数/返回值,接口(使用extends关键字),类(使用implements关键字)的结构
      //对象
      interface Info {
         name: string
         age: number
         say?: () => void
      }
      
      const user: Info = {
         name: '张三',
         age: 18,
         say: () => {
            console.log(`我叫${this.name}`)
         }
      }
      //方法的参数和返回值
      interface sum {
         (a: number, b: number): number
      }
      
      const add: sum = (a, b) => {
         return a + b;
      }
      sum(1, 2)
      // 接口
      interface Person{
         name: string;
         say():void;
      }
      interface man extends Person{
         eat():void;
      }
      // 类
      interface Person{
         name: string;
         say():void;
      }
      interface Student{
         hello():void;
      }
      // 同时执行多个接口,用`,`隔开
      class Student implements Person,Student{
         constructor(public name: string) {}
         say() {
            console.log(`我叫${this.name}`);
         }
         hello() {
            console.log(`我是一个学生`);
         }
      }
      
  • Class (链接: link)

  • 泛型(链接:link)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1641540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

08 - 步骤 表输出

简介 表输出&#xff08;Table Output&#xff09;步骤是用于将 Kettle 中的数据写入关系型数据库表的步骤。它允许用户将数据流中的数据插入、更新或删除到目标数据库表中。 使用 场景 我要将处理完的数据流中的sysOrgCode 跟 plateNumber 保存记录到mysql 1、拖拽表输出…

目标检测算法YOLOv5简介

没有关于YOLOv5的直接论文&#xff0c;YOLOv5由Ultralytics维护&#xff0c;源码见&#xff1a;https://github.com/ultralytics/yolov5 &#xff0c;于2020年6月发布v1.0版本&#xff0c;最新发布版本为v7.0&#xff0c;License为AGPL-3.0. 以下内容主要来自&#xff1a; 1. U…

MyScaleDB:SQL+向量驱动大模型和大数据新范式

大模型和 AI 数据库双剑合璧&#xff0c;成为大模型降本增效&#xff0c;大数据真正智能的制胜法宝。 大模型&#xff08;LLM&#xff09;的浪潮已经涌动一年多了&#xff0c;尤其是以 GPT-4、Gemini-1.5、Claude-3 等为代表的模型你方唱罢我登场&#xff0c;成为当之无愧的风口…

【R语言数据分析】卡方检验

目录 交叉卡方检验 配对卡方检验 趋势卡方检验 交叉卡方检验 交叉卡方表用于比较组间“率”的差异。适用于分类型变量&#xff0c;被检验的分类变量应该是无序分类变量&#xff0c;分组变量可以是有序分组也可以是无序分组。比如比较两种药物治疗某个疾病的效率&#xff0c;…

Bartender 5 - MacBook菜单栏图标管理软件

当 macOS 桌面图标太多时&#xff0c;既不美观又经常会相互遮盖&#xff0c;非常影响操作。 苹果现在还把「刘海屏」发扬光大&#xff0c;MacBook 的菜单栏是越来越不方便了&#xff01; 如果你希望 Mac 的菜单栏干净清爽、又方便易用&#xff0c;那「Bartender 5」你一定要试…

第15章 基于规格说明的测试技术

一、概述 &#xff08;一&#xff09;依据 《软件需求规格说明书》以及对应的模型或用户需求。 &#xff08;二&#xff09;特点 不考虑内部结构和内部特征 &#xff08;三&#xff09;测试用例满足的标准 利用黑盒测试技术导出测试用例 &#xff08;四&#xff09;测试…

基于 Wireshark 分析 ICMP 协议

一、ICMP 协议 ICMP&#xff08;Internet Control Message Protocol&#xff09;即互联网控制报文协议&#xff0c;是TCP/IP协议簇的一个子协议。它主要用于在IP主机、路由器之间传递控制消息&#xff0c;这些消息涉及网络是否通畅、主机是否可达、路由是否可用等关于网络本身…

2024年北京高校后勤餐饮博览会|北京餐饮展览会

高联采高校后勤餐饮博览会 暨第25届北京高校后勤餐饮联合招标采购大会 同期举办&#xff1a;中国北京餐饮供应链博览会 主 题&#xff1a; 因为FOOD校园GOOD / 同创高校大舞台共享精彩高联采 时 间&#xff1a;2024年9月21日-22日 地 点&#xff1a;中国国际展览中心&…

利用大模型提升个性化推荐的异构知识融合方法

在推荐系统中&#xff0c;分析和挖掘用户行为是至关重要的&#xff0c;尤其是在美团外卖这样的平台上&#xff0c;用户行为表现出多样性&#xff0c;包括不同的行为主体&#xff08;如商家和产品&#xff09;、内容&#xff08;如曝光、点击和订单&#xff09;和场景&#xff0…

【Hadoop】--基于hadoop和hive实现聊天数据统计分析,构建聊天数据分析报表[17]

目录 一、需求分析 1、背景介绍 2、目标 3、需求 4、数据内容 5、建库建表 二、ETL数据清洗 1、数据问题 2、需求 3、实现 4、扩展概念&#xff1a;ETL 三、指标计算 1、指标1&#xff1a;统计今日消息总量 2、指标2&#xff1a;统计每小时消息量、发送量和接收用…

python学习笔记----面向对象(十)

一、什么是类 类是一个抽象的模板&#xff0c;用于创建具体的实例。可以将类理解为一个蓝图&#xff0c;它定义了一系列对象共有的属性&#xff08;数据&#xff09;和方法&#xff08;函数&#xff09;。类是对一组具有相同属性和功能的对象的抽象。例如&#xff0c;你可以定…

FIFO Generate IP核使用——Native读写接口信号详解

Native FIFO接口信号是用于FIFO IP核与外部电路进行通信的信号。当FIFO支持独立的写和读时钟时&#xff0c;这些信号可以包括标准端口和可选端口。 1 当FIFO具有独立时钟时的接口信号 当FIFO具有独立的时钟时&#xff0c;其接口信号会相应地有所变化。特别是关于复位信号rst…

政安晨:【Keras机器学习示例演绎】(三十二)—— 在 Vision Transformers 中学习标记化

目录 导言 导入 超参数 加载并准备 CIFAR-10 数据集 数据扩增 位置嵌入模块 变压器的 MLP 模块 令牌学习器模块 变换器组 带有 TokenLearner 模块的 ViT 模型 培训实用程序 使用 TokenLearner 培训和评估 ViT 实验结果 参数数量 最终说明 政安晨的个人主页&…

Ubuntu TeamViewer安装与使用

TeamViewer是一款跨平台的专有应用程序&#xff0c;允许用户通过互联网连接从全球任何地方远程连接到工作站、传输文件以及召开在线会议。它适用于多种设备&#xff0c;例如个人电脑、智能手机和平板电脑。 TeamViewer在交通不便或偏远地区使用电脑问题时&#xff0c;将发挥重…

从零开始搭建Springboot项目脚手架1:新建项目

1、技术栈 SpringBoot 3.2.5&#xff1a; 2、 新建项目 使用SpringInitializr 选择Lombok、Configuration Processor、Spring Web&#xff0c;同时IDEA也要安装Lombok插件 删除多余的Maven目录、Maven文件&#xff0c;把HELP.md改成README.md。 当然前提是已经安装好Maven和配…

论文辅助笔记:Tempo之modules/prompt.py

1 get_prompt_param_cls 2 get_prompt_value 3 Prompt 类 3.1 _init_weights 3.2 forward

Windows设置Redis为开机自启动

前言 Redis作为当前最常用的当前缓存技术&#xff0c;基本上Web应用中都有使用。所以&#xff0c;每次我们在本地启动项目前&#xff0c;都必须将Redis服务端启动&#xff0c;否则项目就会启动失败。但是&#xff0c;每次都要去启动Redis就很麻烦&#xff0c;有没有办法做到开…

向量体系结构(5):步幅集中一分散

笔记来源《计算机体系结构 量化研究方法》 回答上一篇最后留下的问题 向量体系结构&#xff1a;向量执行时间-CSDN博客 &#xff08;1&#xff09;如何有效向量化多维矩阵运算&#xff1f; &#xff08;2&#xff09;向量处理器如何高效处理稀疏矩阵&#xff1f; 步幅 步…

一文了解python机器学习Sklearn

1.3 安装和配置Sklearn 要使用Sklearn库&#xff0c;首先需要安装Python和相应的库。在本教程中&#xff0c;我们将使用Python 3.x版本。可以使用以下命令安装Sklearn库&#xff1a; pip install scikit-learn安装完成后&#xff0c;可以在Python代码中导入Sklearn库&#xf…

WIN10 anaconda 安装 CondaError: Run ‘conda init‘ before ‘conda activate‘

1 下载 https://www.anaconda.com/download/success 2 安装 3 修改环境变量 安装后修改环境变量 4 winrun 进入命令窗口 输入cmd 输入 conda info 5 创建 虚拟环境 conda create -n yolov8 python3.8 -y 6 CondaError: Run ‘conda init’ before ‘conda activate’ c…