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

typescript中的type如何使用

在TypeScript中,type关键字用于创建类型别名。类型别名可以为任何类型提供一个新名字,这有助于使代码更加清晰和可维护。以下是一些使用type关键字的示例:

基本类型别名

type Age = number;
let myAge: Age = 30;

对象类型别名

type User = {id: number;name: string;
};
let user: User = {id: 1,name: "Alice",
};

联合类型

type Status = 'active' | 'inactive' | 'pending';
let currentStatus: Status = 'active';

元组类型

type Point = [number, number];
let coordinates: Point = [10, 20];

函数类型

type AddFunction = (a: number, b: number) => number;
let add: AddFunction = (a, b) => a + b;

字符串字面量类型

type CardinalDirection = 'North' | 'East' | 'South' | 'West';
let direction: CardinalDirection = 'North';

扩展类型

type BasicUser = {id: number;name: string;
};type ExtendedUser = BasicUser & {email: string;
};let extendedUser: ExtendedUser = {id: 1,name: "Bob",email: "bob@example.com",
};

映射类型

type ReadOnly<T> = {readonly [P in keyof T]: T[P];
};type ReadOnlyUser = ReadOnly<User>;let readOnlyUser: ReadOnlyUser = {id: 1,name: "Charlie",
};// Error: Cannot assign to 'id' because it is a read-only property.
// readOnlyUser.id = 2;

条件类型

type IsString<T> = T extends string ? true : false
type IsStringResult = IsString<string>; // true
type IsNumberResult = IsString<number>; // false

这些只是type关键字在TypeScript中的一些基本用法。类型别名可以极大地提高代码的可读性和可维护性,特别是在处理复杂的类型时。

http://www.dtcms.com/a/232010.html

相关文章:

  • 信息学奥赛一本通 1570:【例 2】能量项链 | 1843:【06NOIP提高组】能量项链 | 洛谷 P1063 [NOIP 2006 提高组] 能量项链
  • MySQL 索引:为使用 B+树作为索引数据结构,而非 B树、哈希表或二叉树?
  • React-native实战系列
  • 论文速读《VideoMimic:通过视觉模仿实现人形机器人感知控制》
  • 玩转Docker | 使用Docker部署Qwerty Learner英语单词学习网站
  • 第八部分:第三节 - 事件处理:响应顾客的操作
  • AXPM11584:颠覆传统,发现新可能
  • 省赛中药检测模型调优
  • 电路图识图基础知识-降压启动(十五)
  • Java面试题及答案整理( 2025年最新版,持续更新...)
  • 理解继承与组合的本质:Qt 项目中的设计选择指南
  • 《射频识别(RFID)原理与应用》期末复习 RFID第一章 射频识别技术概论(知识点总结+习题巩固)
  • 前端css外边距塌陷(Margin Collapse)现象原因和解决方法
  • 核心机制:拥塞控制
  • 使用 LangChain 和 RAG 实现《斗破苍穹》文本问答系
  • Ros(控制机器人运动)
  • c++提升
  • 系统巡检常见工作
  • Python多线程编程:从GIL锁到实战优化
  • UE 5 和simulink联合仿真,如果先在UE5这一端结束Play,过一段时间以后**Unreal Engine 5** 中会出现显存不足错误
  • 深入解析Java17核心新特性(增强NullPointerException、强封装 JDK 内部 API、伪随机数生成器增强)
  • Makefile基础入门:从编译小白到自动化构建达人
  • 沉金PCB电路板制造有哪些操作要点需要注意?
  • 线程的生命周期与数量设置
  • 【TCP/IP和OSI模型以及区别——理论汇总】
  • 【工具使用】STM32CubeMX-FreeRTOS操作系统-任务、延时、定时器篇
  • DINO-R1
  • C语言-指针基础概念
  • leetcode题解236:二叉树的最近公共祖先
  • Elasticsearch中什么是分析器(Analyzer)?它由哪些组件组成?