基础类型:

  • 字符串(string)(String)

    let first: string = 'niu'    // 直接赋值
    let fourth: string = `niu` // 模板字符串
    let second: string = String(123) // 内置底层函数String
    let third: string = new Number(123).toString() // toString方法 // string和String是两种不同的类型,注意区分首字母大小写,String可以兼容string,但是string是无法兼容String的,理解中属于集合中的父子关系,父集可以包含子集,子集无法兼容父级。
    let str: string = 'hello';
    let strAnother: String = 'hello';
    str = strAnother; // 错误提示:不能将类型“String”分配给类型“string”。“string”是基元,但“String”是包装器对象。如可能首选使用“string”。
    strAnother = str

    所有在JavaScript支持的定义字符串的方法(String方法,模板字符串,toString方法等),都可以直接在TypeScript中使用。

  • 数值型(number and bigint)(Number and BigInt)

    • number类型表示支持的十进制整数、浮点数以及二进制、八进制、十六进制数。二进制、八进制、十六进制数有个简单的记忆技巧,首先都是0开头的,它们依次为0b、0o、0x,把0抽离出来就是一个box,这不就是css布局中的常用box盒子吗,哈哈。 

      let a: number = 10;     // 整数
      let b: number = 3.14; // 浮点数
      let c: number = 0b01; // 二进制
      let d: number = 0o01; // 八进制
      let e: number = 0x01; // 十六进制 // 注意区分字母大小写,同string类似。
    • bigint类型常用来表示较大的整数,因为number类型采用的是IEEE754二进制浮点数算术标准,它会有一个符号位,即正负占1位,指数位,即大小占11位,尾数部分,即精度占据52位,因此可以显示的数值必须是在-2的-53次方到2的53次方范围内,不包含两个端点。当超出这个范围时候,精度就不准确了,这个时候就采用bigInt去表示。

      let a: bigint = 10n;  
      // 注意区分字母大小写,同string类似。
    • number和bigint两种类型是不兼容的,即number不能赋值给类型为bigint的变量,也不能被类型为bigint的变量赋值,对于bigint来讲亦然。     

      let a: number = 123;
      let b: bigint = 10n
      a = b // 错误提示:不能将类型“bigint”分配给类型“number”。
      b = a // 错误提示:不能将类型“number”分配给类型“bigint”。 // 注意区分字母大小写,同string类似。          
  • 布尔值(boolean)(Boolean)

    let a: boolean = true;
    let b: boolean = false;
    // 注意区分字母大小写,同string类似。
  • symbol (Symbol)

    let sym: symbol = Symbol();
    // 注意区分字母大小写,同string类似。
  • 数组类型(Array)

    • 使用[]的形式定义数组类型(推荐使用)

      let numberList: number[] = [1, 2, 3]
      let stringList: string[] = ['1', '2', '3']
      let numberOrStringList: (number | string)[] = [1, 2, 3, '1', '2', '3']
    • 使用Array泛型定义数组类型
      let numberList: Array<number> = [1, 2, 3]
      let stringList: Array<string> = ['1', '2', '3']
      let numberOrStringList: Array<number | string> = [1, 2, 3, '1', '2', '3']
  • 元组类型(Tuple)

    • 元组最重要的特性是可以限制数组元素的个数和类型,特别适合用来实现多值返回。

      // 譬如使用React Hooks下的useState时
      import { useState } from 'react'; const [key, setKey] = useState('name');  
    • 使用元组(数组类型的值只有显示添加了元组类型注解后,或者使用as const,声明为只读元组,ts才会把它当做元组,否则推断出来的就是普通的数组类型)
      type State = {
      x: string,
      y: number
      }
      type SetState = (state: State) => void
      const state = {
      x: 'hello',
      y: 100
      }
      const setState = () => {}
      const x: [State, SetState] = [state, setState];

特殊类型

  • any

  它指的是一个任意类型,是一个选择性绕过静态类型检测的作弊方式。用any类型声明的变量可以赋值给除never以外的任何类型声明的变量,也可以被任何类型声明的变量赋值。

  • unknown

  它主要用来描述类型并不确定的变量。用unknown类型声明的变量只能赋值给unknown和any,同时它可以被任何类型声明的变量赋值。

  • void

  它仅用于表示没有返回值的函数。即如果该函数没有返回值,那么它的类型就是void.

  • undefined

  它最大价值主要体现在接口类型中,表示一个可缺省、未定义的属性。

  • null

  它最大价值主要体现在接口指定上,表明对象或属性可能是空值。

  • never 

  它表示永远不会发生值的类型。用never类型声明的变量可以给所有类型赋值,但是它只能被类型为never的变量赋值。

//  下述函数永远不会有返回值,所以它的返回值类型是never

function ThrowError(msg: string): never {
throw Error(msg);
} function InfiniteLoop(): never {
while (true) {}
}
  • object

  它表示一个非原始类型的类型,基本没啥用。

2022.07.25 TypeScript基础类型介绍的更多相关文章

  1. Typescript基础类型

    1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__st ...

  2. TypeScript基础类型,类实例和函数类型声明

    TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...

  3. typescript基础类型(学习笔记非干货)

    布尔值 Boolean let isDone:boolean=false; 数字 Number let decLiteral:number=6; let hexLiteral:number=0xf00 ...

  4. 4、python常用基础类型介绍

    1.字符串 str 描述性质的一种表示状态的例如名字 word='helloworld' print(type(word),word) <class 'str'> helloworld2. ...

  5. TypeScript 素描-基础类型

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...

  6. TypeScript学习笔记之基础类型

    从今天开始学习typescript了,记录ts学习点滴,最后,使用ts结合nodejs开发后端应用,一起共勉吧: typescript最新版本2.6,所有演示代码均基于此版本 开始之前确定安装了如下n ...

  7. TypeScript 之 基础类型、高级类型

    基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...

  8. TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型

    2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...

  9. 学习笔记:TypeScript入门——基础类型

    前言: TypeScript官网断断续续看过几遍,不知道项目中如何使用,有机会还是要实践一下.现在再把文档上不懂的知识点理一遍. 基础类型 1.什么是元组Tuple? 元组类型允许表示一个已知元素数量 ...

  10. typescript之基础类型

    基础类型分为:数字.字符串.数组.元组.枚举.Any.Object.Null.Undefined.Never.Void 各种类型写法如下: 1.数字(number) let num:number = ...

随机推荐

  1. 怎么理解超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n)

    怎么理解超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n) 前言:重在记录,可能出错. 超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n),也就是: 到底要怎么 ...

  2. PI ID关联IR配置问题

    例如问题:无数据 1.软件组织生成的id与ID配置id不一致(由于删除软件组织重新创建) 1.1找到需要修改位置 1.2 IR查询id 1.3 替换指定需要插入'-'

  3. 利用position: absolute最简便实现水平居中的css样式

    html <div class="horizontal-center"></div> css .horizontal-center { left: 50%; ...

  4. 2022-04-11内部群每日三题-清辉PMP

    1.项目经理从制造商那里收到一个更新信息,说一个必要的设备修理可能会导致他们的可交付成果迟八周时间.项目经理应该怎么做? A.确定关键路径 B.实施沟通管理计划 C.执行假设情景分析 D.对项目进度赶 ...

  5. vue中key

    使用key维护列表的状态 当列表的数据变化时,默认情况下,vue尽可能的服用已存在的DOM元素,从而提升渲染的性能.但这种默认的性能优化策略,会导致由状态的列表无法被正确更新. key的使用注意事项: ...

  6. (jmeter笔记)添加正则提取器和JSON提取器

    添加正则提取器和JSON提取器 1.正则提取器: 返回的Token如下: 引用名称:可以理解为变量名 //调用表示${变量名} 正则表达式:"Token":"(.+?)& ...

  7. 「SOL」序列 (LOJ/NOI2019)

    准备写新博客的时候发现自己草稿箱里还有一篇咕了十几天的题解 思路挂在了费用流之前-- 题面 > Link LOJ #3158 解析 这道题的本质是一个二分图带权匹配的问题,一个经典的做法是直接做 ...

  8. 升级adb

    adb 是没有自动升级的命令的,如果想要更新adb的版本,需要在网上找到自己想要的版本进行更新. 为什么要更新呢? 肯定是在使用中遇到了什么问题必须升级版本才能解决,如果不影响使用,那都无所谓.这里提 ...

  9. Myeclipse导入项目提示已存在(Some projects cannot be imported because they already exist in the workspace)

    原因:在项目空间的文件夹中没有删除干净之前的项目,之前的项目和要导入的项目的名字相同,所以导致无法将项目导入.需要在项目空间中将有关的旧文件都清理干净. 1.将项目空间文件夹中的项目删除. 2.到:\ ...

  10. python机器学习——逻辑回归方法

    背景与原理: 线性回归可以实现对连续结果的预测,但是现实生活中我们常见的另一种问题是分类问题,尤其是二分类问题,在这种情况下使用线性回归就不太合适了,我们实际上需要计算出的是一个在$[0,1]$之间的 ...