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

【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 };

相关文章:

  • 多模态大语言模型arxiv论文略读(四十一)
  • 03实战篇Redis02(优惠卷秒杀、分布式锁)
  • 精益数据分析(23/126):把握创业阶段与第一关键指标
  • 隐形革命:环境智能如何重构“人-机-境“共生新秩序
  • MySql 数据 结构 转为SqlServer (简单)
  • 百度文心4.5 Turbo与DeepSeek、豆包、元宝对比:技术路径与市场格局分析​​
  • python基础-requests结合AI实现自动化数据抓取
  • iphonex uniapp textarea标签兼容性处理过程梳理
  • 秒级到毫秒:BFD的速度革命
  • 从零开始学习人工智能Day5-Python3 模块
  • 热度上升,25西电机电工程学院(考研录取情况)
  • 期货有哪些种类?什么是股指、利率和外汇期货?
  • 前端面试常见部分问题,及高阶部分问题
  • 高级电影感户外街拍人像摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 深度剖析!GPT-image-1 API 开放对 AI 绘画技术生态的冲击!
  • vue3 使用 vite 管理多个项目,实现各子项目独立运行,独立打包
  • 反爬虫机制中的验证码识别:类型、技术难点与应对策略
  • 电商数据中台架构:淘宝 API 实时采集与多源数据融合技术拆解
  • 蓝桥杯 6. 冰雹数
  • 2025年大语言模型平台、主流模型及Token价格的综合对比分析报告
  • 单位被裁定补缴12年社保,滞纳金该谁出?
  • 金隅集团:今年拿地将选择核心热门地块,稳健审慎投资
  • 破解160年基因谜题,我国科学家补上豌豆遗传研究最后拼图
  • 全品系停货?泸州老窖:暂未接到通知,常规调控手段
  • 国防部:菲挑衅滋事违背地区国家共同利益
  • 建投读书会·东西汇流|东西方戏剧在上海的相逢、交锋与融合