详解 TS 基本类型

简介: 类型声明类型声明是 TS 非常重要的一个特点。

详解 TS 基本类型


TS 基本类型


  • 类型声明


  • 类型声明是 TS 非常重要的一个特点。


  • 通过类型声明可以指定 TS 中变量(参数、形参)的类型。


  • 指定类型后,当为变量赋值时,TS 编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。


  • 简而言之,类型声明给了变量设置了类型,使得变量只能存储某种类型的值。


  • 语法:
// let 变量: 类型;
let score;
// let 变量: 类型 = 值;
let score: number = 60;
// function fn(参数: 类型,参数: 类型): 类型{
//   ...
// }
function sum(a: number, b: number): number {
  return a + b;
}
  • 注意:当对变量的声明和赋值是同时进行的,TS 编译器会自动判断变量的类型。所以当变量的声明和赋值是同时进行的,可以省略类型声明。


  • 类型:
类型 例子 描述
number 1,-33,2.5 任意数字
string "hi","hi",hi 任意字符串
boolean true,false 布尔值 true 或 false
字面量 其本身 限制变量的值就是该字面量的值
any * 任意类型
unknow * 类型安全的 any
void 空值(undefined) 没有值(或 undefined)
never 没有值 不能是任何值
object {name: '孙悟空'} 任意的 JS 对象
array [1,2,3] 任意 JS 数组
tuple [4,5] 元素,TS 新增类型,固定长度数组
enum enum{A,B} 枚举,TS 新增类型`

**联合类型:**可以使用 | 来连接多个类型。

let b: "male" | "female"
b = male;
b = female;
let c: boolean | string
b = true;
b = "hello";
// 类型断言
let e: unknow;
e = 10;
e = "hello";
let s: string;
e = 'hello';
if(typeof e === "string"){  // 类型判断以后可以赋值
  s = e;
} 
s = e as string;
s = <string>e;

object

let a: object;
a = {};
a = function () {
};
// {} 用来指定对象中可以包含哪些属性
// 语法: {属性名:属性值,属性名:属性值}
// 在属性名后边加上 ? ,表示属性是可选的。
let b: {name:string,age?:number}
b = {name: "孙悟空",age: 18}
// [propName: string]: any 表示任意属性都是可选的
let c: {name:string,[propName:string]:any}
c = {name:"猪八戒",age: 19}

array

let a: string[];
let b: number[];
let c: Array<number>;

类型别名

type myType = 1 | 2 | 3 | 4 | 5;
let a: myType;
let b: myType;
let c: myType;


相关文章
|
12月前
|
存储 JavaScript 安全
vue项目打包优化:缩小体积productionSourceMap设置,使用cdn加速
vue项目打包优化:缩小体积productionSourceMap设置,使用cdn加速
1166 0
|
12月前
Threejs绘制方形管道
这篇文章讲解了如何在Three.js中创建和渲染方形管道,包括建立几何体、应用材质以及进行场景中的定位和渲染等步骤。
213 0
Threejs绘制方形管道
|
11月前
|
移动开发 Unix Linux
拉取代码编辑器中报错`Delete ␍ prettier/prettier` 问题的解决方案
通过正确配置Prettier、EditorConfig文件和编辑器设置,可以有效解决 `Delete ␍ prettier/prettier`的问题。这不仅能避免频繁的格式化错误,还能确保团队成员在不同开发环境下的代码风格一致,提升项目的代码质量和可维护性。按照上述解决方案调整配置后,您的项目将更加规范,代码也会更具一致性。
961 4
|
9月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
2361 11
|
12月前
vue3 + Ts 中 使用 class 封装 axios
【10月更文挑战第5天】
484 1
|
存储 SQL 关系型数据库
OceanBase与MySQL有何区别?
【8月更文挑战第12天】OceanBase与MySQL有何区别?
3275 3
|
12月前
|
缓存 前端开发 JavaScript
深入了解前端性能优化技巧
【10月更文挑战第7天】深入了解前端性能优化技巧
200 0
|
缓存 前端开发 JavaScript
优化前端性能的5个技巧
提高网站的性能是前端开发中的重要任务之一。本文将介绍5个实用的技巧,帮助前端开发者优化网页加载速度、提升用户体验,并降低服务器负载。
|
JavaScript 编译器 索引
TS进阶篇 | TS高级类型之字面量类型、联合类型、交叉类型(上)
TypeScript中除了基本类型之外,还定义了很多高级类型,高级类型包括字面量类型、联合类型、交叉类型、索引类型、映射类型、条件类型、this类型等。因为内容太多,所以这篇文章先来介绍前三个类型,其余类型会在高级类型的下篇介绍。
1322 0
|
JavaScript
JS生成uuid的四种方法
JS生成uuid的四种方法
581 0