news 2026/5/11 10:09:04

【TS】TS总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【TS】TS总结

1. 类型声明

  • 通过:类型明确指定变量的类型。
  • 示例:
    leta:string;letb:number;letc:boolean;functiondemo(x:number,y:number):number{returnx+y;}

2. 类型推断

  • TypeScript 会根据赋值自动推断变量类型。
  • 示例:
    letd=-99;// 推断为 numberd=false;// 报错

3. 类型总览

  • JavaScript 原始类型:stringnumberbooleannullundefinedbigintsymbolobject
  • TypeScript 扩展类型:voidneverunknownanyenumtuple
  • 自定义类型:typeinterface

4. 常用类型

4.1 字面量类型

  • 值只能是特定的字面量。
  • 示例:
    leta:'你好';letgender:'男'|'女';

4.2any

  • 任意类型,放弃类型检查。
  • 显式与隐式:
    leta:any;// 显式letb;// 隐式(推断为 any)

4.3unknown

  • 类型安全的any,赋值给其他类型需先断言或类型判断。
  • 示例:
    leta:unknown='hello';letx:string;x=aasstring;// 断言

4.4never

  • 表示永远不会有值。
  • 常用于函数返回值或类型推断中的不可能分支。
  • 示例:
    functionerror(message:string):never{thrownewError(message);}

4.5void

  • 表示空或undefined,常用于无返回值的函数。
  • 示例:
    functiondemo():void{console.log('no return');}

4.6object

  • 表示非原始类型(对象、数组、函数等)。
  • 通常使用具体结构进行限制:
    letperson:{name:string;age?:number};

4.7tuple(元组)

  • 固定长度的数组,各位置类型可不同。
  • 示例:
    lett:[string,number];t=['hello',123];

4.8enum(枚举)

  • 定义一组具名常量。
  • 示例:
    enumColor{Red,Blue,Black}letc:Color=Color.Red;

5. 自定义类型

  • 使用type定义类型别名。
  • 示例:
    typeStudent={name:string;age:number;grade:1|2|3;};

6. 抽象类

  • abstract声明,不能实例化,只能被继承。
  • 可包含抽象方法和普通方法。
  • 示例:
    abstractclassPerson{abstractspeak():void;walk(){console.log('walking...');}}

7. 接口

  • interface定义,可重复声明(合并)。
  • 可用于限制类结构或作为类型使用。
  • 与抽象类的区别:
    • 接口只能有抽象成员
    • 类使用implements实现接口
    • 示例:
      interfacePerson{name:string;speak():void;}

8. 属性修饰符

修饰符说明
readonly只读,不可修改
public公开(默认)
protected仅在类及子类中可访问
private仅在类内部可访问

9. 泛型

  • 用于在定义时不指定具体类型,使用时再确定。
  • 可约束泛型范围。
  • 示例:
    functionidentity<T>(arg:T):T{returnarg;}functiongetLength<Textends{length:number}>(arg:T):number{returnarg.length;}

本文涵盖类型系统、自定义类型、类与接口、泛型等核心概念,适用于快速复习与查阅。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 10:08:45

【Java SE 基础学习打卡】37 二维数组

目录前言一、二维数组概述&#xff1a;数组的数组&#xff0c;存表格型数据的利器1.1 生活化类比1.2 编程定义1.3 直观结构&#xff08;以 3 行 2 列的成绩表为例&#xff09;二、二维数组的定义与初始化&#xff1a;造好表格式收纳盒2.1 定义格式&#xff08;2 种&#xff0c;…

作者头像 李华
网站建设 2026/5/11 10:08:46

Java与AI融合新探索:JBoltAI框架能力深度剖析

html在人工智能技术日新月异的背景下&#xff0c;Java作为企业级应用开发的主力军&#xff0c;如何有效融合AI技术成为行业关注的焦点。JBoltAI框架以其独特的AIGS能力、数据管理与处理能力、数据可视化能力&#xff0c;为Java开发者铺就了一条通往AI世界的坚实道路。本文将基于…

作者头像 李华
网站建设 2026/5/5 2:29:17

豆包和InfiniSynapse 联网搜索哪家强:一起寻找元气

今天我无意在群里看到如下一段对话&#xff1a;发这个截图的朋友其实是想展示&#xff0c;其实豆包完全可以替代搜索&#xff0c;而且还没广告。但是如果搜索结果返回的不太好&#xff0c;比如信息有冲突之类的&#xff0c;其实大家应该能够感受到&#xff0c;像豆包/DeepSeek …

作者头像 李华
网站建设 2026/5/10 18:02:10

优化 Selenium 使用文本挖掘在分析留言数据中提供了多种应用 如情感分析、主题建模、关键词提取和文本分类

优化 Selenium 使用文本挖掘在分析留言数据中提供了多种应用 如情感分析、主题建模、关键词提取和文本分类 优化 Selenium 文本挖掘在分析留言数据中提供多种应用 如何优化 Selenium 的使用以提高爬取效率、数据清洗的具体步骤和常用工具 在当今大数据时代&#xff0c;网络爬虫…

作者头像 李华
网站建设 2026/5/8 21:26:25

2026年02月03日全球AI前沿动态

一句话总结 2026年2月3日前后&#xff0c;AI领域呈现全产业链爆发式进展&#xff1a;通用与垂直模型密集迭代&#xff08;轻量化、高性能成主流&#xff09;&#xff0c;多智能体协作与物理AI技术突破&#xff0c;企业并购、融资活跃&#xff0c;应用场景覆盖办公、社交、工业…

作者头像 李华
网站建设 2026/5/5 9:20:45

【LLM】CL-bench:评估LLM学新知识的能力

note CL-bench 围绕一个简单但严格的设计原则构建&#xff1a;每个任务都必须要求从 context 中学习新知识。 CL-bench 中的每个 context 都是完全自包含&#xff08;Self-contained&#xff09;的。解决任务所需的所有信息都显式地提供在 context 本身之中&#xff1a;不需要…

作者头像 李华