当前位置: 首页 > ai >正文

【TS入门笔记2---基础语法】

TS入门笔记2

  • TypeScript---基础语法
  • 一、基础语法与类型系统
      • 1. 基础语法
      • 2. 特殊类型
      • 3.类型系统

TypeScript—基础语法

一、基础语法与类型系统

1. 基础语法

(1)number:在 TypeScript 里,所有数字均为浮点数,涵盖整数与小数。

let num1: number = 10; // 整数
let num2: number = 3.14; // 小数
let num3: number = 0xf00d; // 十六进制

(2)字符串类型(string):用于表示文本数据,可使用单引号、双引号或反引号。

let str1: string = 'hello';
let str2: string = "world";
let name: string = 'John';
let greeting: string = `Hello, ${name}!`; // 模板字符串

(3)布尔类型(boolean):仅有两个值:true和false。

let isDone: boolean = false;

(4)null和undefined:二者都有各自的类型,分别是null和undefined。默认情况下,它们是其他类型的子类型。

let u: undefined = undefined;
let n: null = null;

(5)数组:有两种方式定义数组类型。

let arr1: number[] = [1, 2, 3];
let arr2: Array<number> = [4, 5, 6];

(6)元组类型(tuple):允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

let tuple: [string, number] = ['hello', 10];

(7)枚举类型(enum):

enum Color {Red,Green,Blue
}
let c: Color = Color.Green;

例子:

// 显式类型注解
let age: number = 25;
let name: string = "Alice";
let isActive: boolean = true;// 数组类型
let numbers: number[] = [1, 2, 3];          // 方式一
let list: Array<number> = [4, 5, 6];        // 方式二(泛型语法)// 元组(固定长度和类型)
let userInfo: [string, number] = ["Alice", 30]; // 正确
userInfo = [30, "Bob"];                     // ❌ 类型顺序错误

2. 特殊类型

(1)any :any 关闭类型检查,当你不清楚变量类型,或者变量类型会动态变化时可使用。

let value: any = 'hello';
value = 10;

(2) unknown:unknown 需类型收窄后使用,和any类似,但更安全,因为对unknown类型的变量进行操作前需先进行类型检查。

let unknownValue: unknown = 'hello';
if (typeof unknownValue === 'string') {let strLength: number = unknownValue.length;
}

(3)void 与 never:void 表示无返回值函数,通常用于函数无返回值的情况。never 用于永不返回的函数(如抛出异常)
空类型(void):

function sayHello(): void {console.log('Hello!');
}

3.类型系统

(1)类型断言:当你比 TypeScript 更清楚某个值的类型时,可使用类型断言。有两种语法形式。

let someValue: any = 'this is a string';
let strLength1: number = (someValue as string).length;
let strLength2: number = (<string>someValue).length;

(2)类型推论:在某些情况下,TypeScript 能自动推断变量的类型,无需显式指定。

let message = 'Hello, TypeScript!'; // TypeScript自动推断message为string类型

(3)类型操作:

const str = "hello";
const len1: number = (<string>str).length;  // 尖括号语法
const len2: number = (str as string).length; // as 语法:cite[3]

(4)联合类型与字面量类型:

type Status = "success" | "error";  // 字面量联合
let id: string | number;            // 联合类型:cite[1]:cite[6]

(5)交叉类型:把多个类型合并成一个类型,该类型包含所有类型的特性。

interface Person {name: string;
}
interface Employee {employeeId: number;
}
type PersonEmployee = Person & Employee;
let personEmployee: PersonEmployee = { name: 'John', employeeId: 123 };
http://www.xdnf.cn/news/1872.html

相关文章:

  • python_BeautifulSoup提取html中的信息
  • 1GB与1MB的数值换算关系
  • DeepSeek本地部署保姆级教程
  • tkinter的文件对话框:filedialog
  • Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
  • 软考中级-软件设计师 知识点速过1(手写笔记)
  • 五一去荣昌吃卤鹅?基于Java和天地图的寻找荣昌卤鹅店实践
  • C++入侵检测与网络攻防之暴力破解
  • 系统架构师2025年论文《论非功能性需求对企业应用架构设计的影响》
  • Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解
  • 深度剖析!GPT-image-1 API 开放对 AI 绘画技术生态的冲击!
  • 【HTTP通信:生活中的邮局之旅】
  • docker的安装和简单使用(ubuntu环境)
  • 【2026第十三季】国考行测模考大赛复盘
  • 如何解决windows端口被占用
  • Python数据分析案例72——基于股吧评论数据的情感分析和主题建模(LDA)
  • 数字化转型的“暗礁“与突围:失败案例深度复盘
  • 联合体和枚举类型
  • WebUI可视化:第4章:Streamlit数据可视化实战
  • uni-app 小程序中的定位问题 以及 页面安全距离
  • 【前端】如何检查内存泄漏
  • 中国250米土壤质地类型数据
  • 上海SMT贴片加工核心工艺与优化方案
  • 文档编辑:reStructuredText全面使用指南 — 第四部分 高级主题
  • 自然语言处理将如何颠覆未来教育?个性化学习新纪元
  • 潮了 低配电脑6G显存生成60秒AI视频 本地部署/一键包/云算力部署/批量生成
  • aws(学习笔记第三十九课) iot-msk-pipeline
  • 【开源工具】Python打造高颜值串口调试助手:支持自动收发+历史记录+多主题切换(附完整源码)
  • 不会挖竞品关键词?你每天都在浪费 50% 的 SEO 预算!
  • Linux的基础指令