「typescript」Typescript 的基础类型有哪些

TypeScript 是一种强类型编程语言,它建立在 JavaScript 的基础上,为开发者提供了更丰富的类型系统和更严格的编译时检查。TypeScript 的基础类型主要包括以下几种:

  1. 布尔类型(Boolean)

    • 表示逻辑值,可以是 truefalse
    • 示例:let isDone: boolean = false;
  2. 数字类型(Number)

    • 表示双精度 64 位浮点类型,也可以处理整数。
    • 示例:let age: number = 25;
  3. 字符串类型(String)

    • 表示文本数据,可以是单引号、双引号或模板字符串。
    • 示例:let name: string = "Alice";
  4. 数组类型(Array)

    • 表示有序的元素集合,每个元素可以是任意类型。
    • TypeScript 提供了两种定义数组的方式:
      • 类型后跟 [],如 let numbers: number[] = [1, 2, 3];
      • 使用泛型 Array<T>,如 let numbers: Array<number> = [1, 2, 3];
  5. 元组类型(Tuple)

    • 表示已知元素数量和类型的数组,但各元素类型可以不同。
    • 示例:let person: [string, number] = ["Alice", 25];
  6. 枚举类型(Enum)

    • 为一组数值赋予友好的名字,增加代码的可读性和可维护性。
    • 示例:enum Color {Red, Green, Blue}; let c: Color = Color.Green;
  7. 任意类型(Any)

    • 表示可以是任何类型,通常用于那些我们还不清楚类型的变量。
    • 示例:let notSure: any = 4; notSure = "maybe a string instead";
  8. 空类型(Void)

    • 表示没有任何类型,通常用于没有返回值的函数。
    • 示例:function warnUser(): void { console.log("This is my warning message"); }
  9. Null 和 Undefined

    • null 表示对象值缺失,undefined 用于初始化变量为一个未定义的值。
    • TypeScript 中,nullundefined 各有自己的类型。
  10. Never 类型

    • 表示的是那些永不存在的值的类型。例如,总是会抛出异常或根本就不会有返回值的函数表达式的返回值类型。
    • 示例:function error(message: string): never { throw new Error(message); }
  11. 对象类型(Object)

    • 表示非原始类型,即除了 numberstringbooleansymbolnullundefined 之外的类型。
    • 示例:let person: object = { name: "Alice", age: 25 };
  12. 未知类型(Unknown)

    • 表示未知类型,类似于 any 类型,但更加安全。使用 unknown 类型的变量时,需要进行类型检查或类型断言。
    • 示例:let value: unknown = "Hello"; if (typeof value === "string") { console.log(value.toUpperCase()); }
  13. Symbol

    • 表示唯一的标识符,通常用作对象属性的键。
    • 示例:let id: symbol = Symbol("id"); let obj = { [id]: "12345" };
  14. BigInt

    • 表示任意精度的整数,可以处理超出 number 类型表示范围的整数。
    • 示例:let bigNumber: bigint = 9007199254740991n;

这些基础类型使得 TypeScript 能够为变量、函数参数和函数返回值等提供明确的类型注解,从而增强代码的可读性、可维护性和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是软件定义安全SDSec

一、软件定义安全SDSec产生的背景 软件定义安全&#xff08;Software Defined Security&#xff0c;SDSec&#xff09;的产生背景主要源于传统网络安全防护方法在面对复杂网络环境时的不适应性&#xff0c;以及软件定义网络&#xff08;SDN&#xff09;技术的发展和应用。 SD…

东方博宜1625 - 谁的年龄大

问题描述 甲乙两个人在公园相遇&#xff0c;甲说我今年 n 岁了&#xff08; n 是一个两位的整数&#xff0c;个位和十位不相等&#xff09;&#xff0c;乙说&#xff0c;太巧了&#xff0c;你的年龄倒过来&#xff0c;就是我的年龄&#xff0c;请问两个人谁的年龄更大&#xf…

RSRS研报复现——年化21.5%,含RSRS标准分,右偏标准分的Backtrader指标计算(代码+数据)

原创文章第583篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 继续Backtrader&#xff0c;今天讲讲指标扩展。 作为规则型的量化框架&#xff0c;指标是非常重要的元素&#xff0c;它是策略的基础。 我们来扩展一个经典的指标&#xff0c;RSR…

matlab数值溢出该怎么解决?

&#x1f3c6;本文收录于《CSDN问答解惑》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

LabVIEW自动测控与故障识别系统

使用LabVIEW 2019在Win10 64位系统上开发自动测控软件&#xff0c;通过与基恩士NR-X100数据采集仪通讯&#xff0c;实时采集和分析数据&#xff0c;自动识别判断产品是否合格&#xff0c;并增加数据记录和仿真功能。 具体解决方案&#xff1a; 1. 系统架构设计 硬件接口&#…

在make类构建系统配置文件中定义函数宏

CMakeLists中定义函数宏 add_definitions(-Dsysctlbyname(name,oldp,oldlenp,ewp,newlen) -1)这个写法会报warning&#xff1a; CMake Warning (dev) at /ssd1t/helloworld/CMakeLists.txt:114:Syntax Warning in cmake code at column 64Argument not separated from prece…

前端面试题38(js原型与对象)

在JavaScript中&#xff0c;原型&#xff08;prototype&#xff09;是核心特性之一&#xff0c;它用于实现对象之间的继承和属性方法的共享。理解原型和对象的关系对于深入学习JavaScript至关重要。下面我会详细解释这两个概念以及它们是如何工作的&#xff0c;并给出一些示例代…

Vue 3 <script setup> 使用v-bind(或简写为 :)来动态绑定图片的 src 属性

<img :src"images[currentIndex]" > <template> <div> <!-- 使用 v-bind 或简写为 : 来动态绑定图片的 src 属性 --> <img :src"images[currentIndex]" alt"Dynamic Image" style"width: 100px; height: a…

Java设计模式---(创建型模式)工厂、单例、建造者、原型

目录 前言一、工厂模式&#xff08;Factory&#xff09;1.1 工厂方法模式&#xff08;Factory Method&#xff09;1.1.1 普通工厂方法模式1.1.2 多个工厂方法模式1.1.3 静态工厂方法模式 1.2 抽象工厂模式&#xff08;Abstract Factory&#xff09; 二、单例模式&#xff08;Si…

华为机考真题 -- 攀登者1

题目描述: 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 一个山脉可能有多座山峰(山峰定义:高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。登山者…

每日一道算法题 求最小公倍数

题目 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) Python 辗转相除法 dividend,divisormap(int,input().split()) #被除数&#xff0c;除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥协商(ArkTS)】

密钥协商(ArkTS) 以协商密钥类型为X25519 256&#xff0c;并密钥仅在HUKS内使用为例&#xff0c;完成密钥协商。 开发步骤 生成密钥 设备A、设备B各自生成一个非对称密钥&#xff0c;具体请参考[密钥生成]或[密钥导入]。 密钥生成时&#xff0c;可指定参数HUKS_TAG_DERIVE…

qt6 中 Qvariant

在 Qt 框架中&#xff0c;"上线文环境"这个表达可能会引起一些混淆。如果你在提及 QVariant 类时使用“上线文环境”这个词&#xff0c;可能是想表达QVariant在应用中的使用场景或其在特定功能中的角色。然而&#xff0c;如果直接翻译“上线文环境”至中文环境中与 Q…

LLM-文本分块(langchain)与向量化(阿里云DashVector)存储,嵌入LLM实践

文章目录 前言向量、令牌、嵌入分块按字符拆分按字符递归拆分按token拆分 向量化使用 TextEmbedding 实现语义搜索数据准备通过 DashScope 生成 Embedding 向量通过 DashVector 构建检索&#xff1a;向量入库语义检索&#xff1a;向量查询完整代码 总结 前言 Transformer 架构…

[C++][ProtoBuf][Proto3语法][三]详细讲解

目录 1.默认值2.更新消息1.更新规则2.保留字段reserved 3.未知字段1.是什么&#xff1f;2.未知字段从哪获取 4.前后兼容性5.选项option1.选项分类2.常用选项列举3.设置自定义选项 1.默认值 反序列化消息时&#xff0c;如果被反序列化的⼆进制序列中不包含某个字段&#xff0c;…

信息系统项目管理师【一】英文选择题词汇大全(1)

一、计算机相关词汇 数据挖掘 Data Mining分布式计算 Distributed Computing云计算 Cloud Computing物联网 IOT Internet of Things大数据 Big Data人工智能 artificial intelligence互联网 Internet plus区块链 Blockchain5G 5th-Generation感知层 sensing layer机器学习 mac…

基于Spring Boot的旅游信息推荐信息系统设计与实现(源码+lw+部署+讲解)

技术指标 开发语言&#xff1a;Java 框架&#xff1a;Spring BootJSP JDK版本&#xff1a;JDK1.8 数据库&#xff1a;MySQL5.7 数据库工具&#xff1a;Navicat16 开发软件&#xff1a;IDEA Maven包&#xff1a;Maven3.6.3 浏览器&#xff1a;IE浏览器 功能描述 旅游信…

Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析

章节内容 上一节我们完成了内容&#xff1a; Flume 启动测试Flume Conf编写Flume 测试发送和接收数据 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&#xff0c;但…

深入探索大语言模型

深入探索大语言模型 引言 大语言模型&#xff08;LLM&#xff09;是现代人工智能领域中最为重要的突破之一。这些模型在自然语言处理&#xff08;NLP&#xff09;任务中展示了惊人的能力&#xff0c;从文本生成到问答系统&#xff0c;无所不包。本文将从多个角度全面介绍大语…

AGE agtype 简介

AGE 使用一种名为 agtype 的自定义数据类型&#xff0c;这是 AGE 返回的唯一数据类型。agtype 是 Json 的超集&#xff0c;也是 JsonB 的自定义实现。 简单数据类型 Null 在Cypher中&#xff0c;null用于表示缺失或未定义的值。概念上&#xff0c;null表示“缺失的未知值”&…