首页 > 其他分享 >TypeScript 类型系统:元组、枚举与类型转换

TypeScript 类型系统:元组、枚举与类型转换

时间:2025-01-14 23:58:07浏览次数:3  
标签:类型转换 TypeScript console log 元组 let 类型 string

TypeScript 提供了丰富的类型系统,本文将阐述元组、枚举、联合类型及类型转换等多个方面。

1. 元组(Tuple)

1.1 元组概述

元组是 TypeScript 中的一种特殊数据结构,用于表示已知数量和类型的元素集合。与数组不同,元组中的元素类型可以不同。

1.2 创建元组
let person: [string, number] = ["Alice", 30];
  • 第一个元素是字符串类型,第二个元素是数字类型。
  • 元组可以通过索引访问其元素:
console.log(person[0]); // 输出: "Alice"
console.log(person[1]); // 输出: 30

2. 枚举类型(Enum)

2.1 枚举概述

枚举是一种用于定义命名常量集合的数据类型,能够让代码更加清晰可读。

2.2 数字枚举
enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}
console.log(Direction.Up);   // 输出: 1
console.log(Direction.Right); // 输出: 4
2.3 字符串枚举
enum Colors {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}
console.log(Colors.Red); // 输出: "RED"

3. unknown 类型

3.1 unknown 概述

unknown 表示未知类型,是 TypeScript 中最安全的顶级类型之一。

3.2 使用示例
let value: unknown;

value = "Hello";
value = 123;

if (typeof value === "string") {
  console.log(value.toUpperCase()); // 确保类型是 string 后才可以调用 string 方法
}

4. any 类型

4.1 any 概述

any 类型可以表示任意类型的值,但会跳过类型检查,因此使用时要谨慎。

4.2 示例
let anything: any = "Hello World";
anything = 42;
console.log(anything.toFixed(2)); // 42.00

注意:相比 any 类型,unknown 更加安全,因为它要求明确的类型检查。

5. Null 和 undefined 类型

5.1 概述
  • null:表示一个明确为空的值。
  • undefined:表示一个变量已声明但未初始化。
5.2 示例
let value1: null = null;
let value2: undefined = undefined;

6. 联合类型

6.1 联合类型概述

联合类型允许一个变量接受多种类型的值。

6.2 使用示例
let id: number | string;
id = 123;  // 可以是数字
id = "ABC"; // 也可以是字符串
6.3 联合类型的类型保护
function printId(id: number | string) {
  if (typeof id === "number") {
    console.log(`数字ID: ${id}`);
  } else {
    console.log(`字符串ID: ${id}`);
  }
}

7. 类型转换

7.1 类型断言

类型断言可以显式地告诉 TypeScript 变量的具体类型。

let someValue: unknown = "Hello TypeScript";
let strLength: number = (someValue as string).length;
console.log(strLength); // 输出: 15
7.2 使用 <> 语法
let anotherValue: unknown = "TypeScript";
let length: number = (<string>anotherValue).length;
7.3类型转换函数

TypeScript提供了一些内置的类型转换函数:

  • parseInt():将字符串转换为整数

  • parseFloat():将字符串转换为浮点数

  • toString():将其他类型转换为字符串

  • Number():将其他类型转换为数字

  • Boolean():将其他类型转换为布尔值

  • String():将其他类型转换为字符串

    // 类型转换函数示例
    let strNumber: string = "123";
    let num1: number = parseInt(strNumber);
    let num2: number = Number(strNumber);
    let booleanValue: boolean = Boolean(strNumber);
    let strValue: string = String(num1);
    console.log(num1); // 输出:123
    console.log(num2); // 输出:123
    console.log(booleanValue); // 输出:true
    console.log(strValue); // 输出:"123"
    

凡是过去,皆为序章;凡是未来,皆有可期。

标签:类型转换,TypeScript,console,log,元组,let,类型,string
From: https://blog.csdn.net/time_silence/article/details/145129022

相关文章

  • cast类型转换库
    目录cast类型转换库介绍文档cast.ToString/cast.ToInt其他高级用法转时间cast.ToDuration/cast.ToTime转切片cast.ToIntSlice/cast.ToStringSlice转为map[string]Type类型cast类型转换库介绍文档https://darjun.github.io/2020/01/20/godailylib/cast/cast.ToString/cast.ToI......
  • [TypeScript] 实现一个强大的模式匹配
    前言众所不周知,在Rust语言中,有一个强大的语法,模式匹配:fnmain(){letdata=Some(12);matchdata{Some(i)=>println!("{}",i),None=>println!("Nodata"),}}那么在typescript中我们如何为自己实现一个这么好用的语法呢?match.ts//......
  • C# 类型转换 as、is、括号强转之间的区别
    文章目录1、括号强制类型转换2、as运算符3、实例在C#中,as和强制类型转换(如:(T)Value)的主要区别在于它们处理类型转换不成功时的行为和应用场景1.括号强制类型转换使用语法:Typevariable=(Type)Expression;当你确定Expression运行时可以安全的转换为目标Type类型时,使用......
  • day02-类型转换、运算符-cnblog
    day02——数据类型、运算符小伙伴们,又是元气满满的一天,今天继续开干!!!一、数据的表示详解昨天我们学习了变量,我们知道变量可以用来记录数据的。那么数据在计算机底层是以什么形式表示的呢?下面我们就学习一下数据在计算机中的底层原理。1.1整数在计算机中的存储原理其实任何数......
  • C++强制类型转换
    目录一.C语言类型转换1.自动类型转换2.强制类型转换二.C++强制类型转换1. static_cast2.const_cast3.reinterpret_cast4.dynamic_cast一.C语言类型转换1.自动类型转换C/C++中均提供自动类型转化,适用于部分内置类型的互相转换,语法格式如下:目标类型b = a;......
  • Python----Python基础(元组 tuple,元组的创建,基本操作:访问,连接,索引,计数,长度,最大值,最小值
    一、元组tuple列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。二、元组的创建 2.1、使用()方式创建元组使用圆括号 () 可以创建一个元组,元素之间用逗号 , 分隔。......
  • 【20241030】【Python基础教程】第二章 列表和元组 II
    第二章列表与元组II切片切片用来访问特定范围内的元素。使用两个索引,并且用冒号分隔:代码:website='www.Ilovechina.com'print(website[6:10])#第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号print(website[8:-4])#-4是倒数第四个......
  • 【C++】特殊类设计和C++的类型转换
    ......
  • C++编程基础:类型转换四式速记const_cast,dynamic_cast,reinterpret_cast,static_cast
    C++编程就应该使用C++风格的转换,不要再使用不安全的C风格的转换方法了。这里先给一个C++编程风格的类型转换四式速记打油诗,帮大家记忆其用法:C++强制转换妙,四类各有其诀窍。const_cast用途巧,常量限制可取消,const属性轻松搞,函数参数常需要。dynamic_cast专长显,继承体系......
  • Python 中的迭代器与生成器、列表与元组的区别、作用域与命名空间的关系、异常处理机
    引言在Python的面试中,除了基础知识,还经常会涉及到一些稍微复杂的概念与问题。这篇文章将继续为大家分析一些高频Python面试题,帮助你更好地准备面试,提升自己的技术能力。......