TypeScript学习笔记一:数据类型

2023-11-18

在TypeScript中所包含的数据类型有以下几种:

number,string,boolean,void,Null 和 Undefined,any,array数组,Tuple元组,never,enum,object,bight与symbol,变量声明与解构,类型断言,type别名

其中,常见的有:number,string,boolean,void,Null 和 Undefined,any,数组,元组,never,enum,

1、number数值类型

let peopleNum : number;//定义了一个number类型的peopleNum变量,给它赋值时只能赋给number类型的值;
peopleNum = 20;//不会报错
peopleNum = "lalal";//会报错
//注意:和javascript一样,typescript的数值类型都是浮点数,可支持二进制、八进制、十进制和十六进制

2、string字符串类型

let peopleName:String;
peopleName = "张三";
let log = "我就是法外狂徒${peopleName}";
console.log(log)

3、Boolean布尔类型

let isPeople:boolean;//定义一个布尔类型的isPeople,只能赋值为true和false。
isPeople = true;//不会报错
isPeople = "是";//会报错

4、void空

function one():void{
    return true//报错
    return  //不报错
    return 123//报错
}
//函数规定了void后,要求返回值为空,或者不返回,(但是,如果你只写一个return,或者return一个undefined或者null,也不会报错,因为理论上来说null和undefined是所有类型的子集)

5、Null和undefined

        所有类型都可以设置为null及undefined,因为理论上来说null和undefined是所有类型的子类型,never除外

6、any任意类型

let what:any = 4;//可以给what赋任意类型的值
waht = 111;
what = "hjsdfsdjkf";
what = true;
//都不会报错

        注意:虽然看上去使用any十分方便,但是当一个变量设置了any类型后就相当于关闭了TS的类型检测,就无法使用 TypeScript 提供的大量的保护机制。

所以,尽量不要使用any。

7、array数组类型

//方式1  let 变量名:数据类型[]=[值1,值2,值3]
let arr1:number[]=[1,2,3]
//方式2  let 变量名:Array<数据类型>=[值1,值2,值3]
let arr2:Array<number>=[1,2,3]
//定义数组后,数组内的内容也要根据定义的数据类型来

8、Tuple元组

//一种对数组的更严格一些的数据格式
let arr:[string,number,boolean] = ["ggfsdj",10,true]//按照定义的类型,不会报错
 
arr = [10,11,true]//arr[0],不符合,会报错

//元组类型在使用的时候,数据的类型的位置和数据的个数,应该和在定义元组的时候的数据类型及位置应该是一致的

9、never表示没有值

  never类型表示的是那些永不存在的值的类型。 例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。

  never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 null和undefined也不可以赋值给never

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

10、enum枚举

        适用于有限个数的属性值选择。

let people:{name:String,sex:'nan'|'nv'}
i={
   name:'lrc',
   sex:'nan'
} 
//把所有可能的情况列出来,上边的内容转为枚举

enum gender{
  man:1,
  women:0
}
let people:{name:String,sex:gender}
i={
   name:'lrc',
   sex:gender.man
} 

 基本类型就先整这些,后续再搞后边的,菜狗告辞。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript学习笔记一:数据类型 的相关文章

随机推荐

  • 【CMD】执行adb devices找不到设备的问题

    首先描述一下当时遇到的情况 手机USB连接电脑提示正常 设备管理器显示手机设备正常 问题是执行命令adb devices找不到设备 在Windows系统 资源管理器下 找到Android Sdk路径打开 看看那个文件夹platform to
  • spring的jdbcTemplate批量添加数据,单条数据中文正常,多数据第二条数据开始中文乱码

    今天用spring的jdbcTemplate org springframework jdbc core JdbcTemplate 批量添加数据 方法是jdbcTemplate bathUpdate 然后遇到一个很神奇的问题 批量添加的数据
  • 【精】彻底吃透HDFS写流程(5)-- DataStreamer线程类run方法分析以及如何构建pipeline?

    有关HDFS写流程的系列文章 精 彻底吃透HDFS写流程 1 BlockConstructionStage 精 彻底吃透HDFS写流程 2 Namenode侧create文件 精 彻底吃透HDFS写流程 3 DataStreamer线程和输
  • Android Studio及JDK完整详细安装

    本博文源于安卓基础旨在讨论如何搭建Android开发环境 下面进入步骤 了解安卓开发需要的工具 安装步骤 安装文件的下载 JDK的安装 Android Studio的安装与Android SDK的下载 基本开发的环境配置 安装文件的准备 首
  • 还是 “月饼” 后续,玩转炫彩 “月饼” 之 问题说明

    画一个 月饼 陪我过中秋 开发板后续问题跟进说明 目录 前言 一 出现问题 二 寻求办法 三 若有所思 四 问题测试 结语 悬赏送开发板 前言 本文有纯理论玩家是永远不会经历的实际问题 嵌入式工程师不动手永远出不了作品 本文最后有送开发板的
  • sqoop初步使用

    一 概述 Sqoop是一款开源的数据导入导出工具 可以将传统的关系型数据库导出至HDFS 也可以将HDFS中的数据导出至关系型数据库 官网 http sqoop apache org 原理 在Hadoop生态体系中 计算基本依赖于MR 那么
  • PHP如何使用Ds\Queue Capacity()函数?代码实例

    Ds Queue capacity PHP中的函数用于检查Queue实例的当前容量 语法 int public Ds PriorityQueue capacity void 参数 此功能不接受任何参数 返回值 此函数返回Queue实例的当前
  • stata学习笔记

    离散被解释变量 二值选择型 二值选择模型 多值选择型 多项选择模型 条件选择 混合 排序数据 排序模型 非负整数计数型 泊松 负二项 二值选择型 采用logit和probit模型 probit即把logit换一下就好 logit y x1
  • Dubbo源码分析-服务导出源码解析(三)

    在这个版本中dubbo会通过注解 PostConstruct把ServiceBean实例放到ConfigManager中 public abstract class AbstractConfig implements Serializabl
  • C++11 删除 字符串中的空格

    include
  • android 反射机制和反射调用方法

    对于android 中很多类没有开放出来 考虑到这些API不稳定 后续有可能会更改 所有没有在SDK中暴露出来给用户使用 但是我们在开放的过程中还是需要使用到一些android 系统中未开放出来的class 这时候我们就可以通过反射机制来调
  • 商品期货手续费一般是万分之十以内(商品期货手续费一般是万分之十以内吗)

    商品期货手续费一般 商品期货手续费普遍是极端之十以内 普遍是极端之10以内 简直看期货公司收取规范 普遍每个期货公司规范纷歧 海内四家期货买卖所颁布贬低一切期货买卖种类的手续费规范 各种类降费比率从12 5 到50 不等 期货买卖所手续费水
  • websocket的属性readyState

    websocket的属性readyState webSocket的readyState属性用来定义连接状态 该属性的值有下面几种 0 对应常量CONNECTING numeric value 0 正在建立连接连接 还没有完成 The con
  • MultipartFile上传文件报文件不存在的几种情况

    首先先了解一下从上传到保存整个流程是怎样的 然后在举几个文件不存在的例子 前端传进来一个文件 spring把文件保存到临时目录里 也就是 tmp tomcat 文件夹里 这个目录是在程序启动时创建的 目录也可以自定义 临时文件是 tmp结尾
  • matlab2019a中LSTM网络使用方法及源码示例(Deep Learning Toolbox系列篇6)

    此示例说明如何使用长短期记忆 LSTM 网络对序列数据进行分类 要训练深度神经网络以对序列数据进行分类 可以使用 LSTM 网络 LSTM 网络允许您将序列数据输入网络 并根据序列数据的各个时间步进行预测 此示例使用 1 和 2 中所述的日
  • 滑动指示器导航源码html+css

  • 深入理解react native布局(一)居中

    刚刚做完了一个项目 基本上把react native各种布局方式都用上了 发现了很多坑 也学会和很多 这里给大家分享一下哈 首先我们要有个概念 react native里面是兼容大部分我们在css里面用到的布局方式 此外接触过css里面fl
  • unity透明shader

    Shader Custom AlphaSelfIllum Properties Color Main Color Color 1 1 1 0 SpecColor Spec Color Color 1 1 1 1 Emission Emmis
  • Tab键== 4个空格并在Vim中的花括号后自动缩进

    我如何制作vi Vim从不使用制表符 将空格转换为制表符 不好 制作Tab键 4个空格 并在像Emacs这样的大括号块之后自动缩进代码 另外 如何保存这些设置 以便我再也不必输入它们 我已经看到了与此相关的其他问题 但它似乎总是与我想要的有
  • TypeScript学习笔记一:数据类型

    在TypeScript中所包含的数据类型有以下几种 number string boolean void Null 和 Undefined any array数组 Tuple元组 never enum object bight与symbol