当前位置:网站首页>LayaBox---TypeScript---基础数据类型
LayaBox---TypeScript---基础数据类型
2022-07-30 17:38:00 【格拉格拉】
目录
2.数字 number--> ts里所有数字都是浮点数,这些浮点数的类型是 number
3.字符串 string-->文本数据类型,可以使用双引号“aaa” 或单引号‘aaa’表示
6.enum枚举--> 像C#等语言一样,枚举类型可以为一组数值赋予友好的名字。
7.Any--->当你为不确定类型的变量指定一个类型时,可以使用any类型来标记这些变量。
----------------------------------------------其他-------------------------------------
3.Object类型--->表示非原始类型,也就是除number,string,boolean,symbol,null 或 undefined之外的类型。
一:TypeScript 基础类型
最简单的数据单元:数字,字符串,结构体,布尔值等
1.布尔值 boolean : true/false
布尔值--> let isDone: boolean = false;2.数字 number--> ts里所有数字都是浮点数,这些浮点数的类型是 number
let decLiteral: number = 6; //十进制
let hexLiteral: number = 0xf00d; //十六进制
let binaryLiteral: number = 0b1010; //二进制
let octalLiteral : number = 0o744; //八进制3.字符串 string-->文本数据类型,可以使用双引号“aaa” 或单引号‘aaa’表示
let name: string = "bob";
name = "smith";也可以使用模版字符串,它可以定义多行文本和内嵌表达式。并以${ } 这种形式嵌入表达式
let name: string = 'Gene';
let age: number = 34;
let sentence: string = ‘Hello,my name is ${ name }.
I'll be ${ age + 1} years old next month.';
与下面定义sentence的方式效果相同:
let scentence: string = "Hello, my name is" + name +".\n\n"+
"I'll be" + (age +1)+ " years old next month.";4.数组-->有2种定义方式:
第一种:在元素类型后面接[]
let list: number[] = [1,2,3];
第二种:使用数组泛型,Array<元素类型>
let list: Array<number> = [1,2,3];5.元组--->允许表示一个已知元素数量和类型的数组。
let x: [string , number];
x = ['hello' , 10];
当访问一个已知索引的元素,会得到正确的类型:
console.log(x[0].substr(1)); //ok
console.log(x[1].substr(1)); //error, 'number' does not have 'substr'6.enum枚举--> 像C#等语言一样,枚举类型可以为一组数值赋予友好的名字。
1.默认从0开始元素编号
enum Color
{
Red,
Green,
Blue
}
let c: color = Color.Red;
--------------------------------------------------------------
2.也可以手动指定成员的数值,如从1开始编号:
enum Color
{
Red = 1,
Green,
Blue
}
let c: color = Color.Red;
--------------------------------------------------------------
3.或者全部手动编号:
enum Color
{
Red = 1,
Green = 2,
Blue = 4
}
let c: color = Color.Red;
----------------------------------------------------------------
枚举类型提供了一个便利,可以由枚举值得到它的名字。
enum Color
{
Red = 1,
Green,
Blue
}
let colorName: string = Color[2];
console.log(colorName); //显示‘green’ 因为上面代码里它的值是2
7.Any--->当你为不确定类型的变量指定一个类型时,可以使用any类型来标记这些变量。
类型检查器不会对这些值进行检查,而是直接通过编译阶段的检查。
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;
//当你只知道一部分数据的类型时,any类型也是有用的,比如,你有一个数组,它包含了不同类型的数据
let list: any[] = [1, true, "free"];
list[1] = 100;----------------------------------------------其他-------------------------------------
1.Void类型
//当一个函数没有返回值时,使用void类型
function warnUser(): void
{
console.log("This is my warning message");
}
//声明一个void类型的变量没什么用,因为你只能为它赋予 undefined 和 null
let unusable: void = undefined;
默认情况下 null 和 undefined 是所有类型的子类型,然而,当你指定了 --stricNullChecks标记,
null和undefined 只能赋值给void 和他们各自。2.Never类型--> 表示的是那些永不存在的值的类型。
例如:never类型是哪些总是会抛出异常或根本就不会有返回值的函数表达式或箭头表达式的返回值类型。
never 类型是任何类型的子类型,可以赋值给任何类型;然而没有任何类型是never的子类型,或可以赋值给never类型(除了never本身之外)。即使any也不可以赋值给never。
//返回never的函数必须存在无法达到的终点
function error(message: string): never
{
throw new Error( message );
}
//推断的返回值类型为never
function fail()
{
return error("something failed");
}
//返回never的函数必须存在无法达到的终点
function infiniteLoop(): never
{
while(true)
{
}
}3.Object类型--->表示非原始类型,也就是除number,string,boolean,symbol,null 或 undefined之外的类型。
使用object类型,就可以更好的表示像 Object.create这样的API.
例如:
declare function create(o: object | null): void;
create({prop: 0}); //ok
create(null); //ok
create(42); //error
create("string"); //error
create(false); //error
create(undefined); //error4.类型断言-----相当于其他语言的 强制类型转换
类型断言 有2种表现形式
let someValue: any = "this is a string";
1.‘尖括号’语法
let strLength: number = (<string>someValue).length;
2.as语法
let strLength: number = (someValue as string).length;边栏推荐
- 浅谈在线编辑器中增量编译技术的应用
- Informatics Olympiad 1915: [01NOIP Popularization Group] Greatest Common Divisor and Least Common Multiple | Luogu P1029 [NOIP2001 Popularization Group] The problem of the greatest common divisor and
- 线程同步 控制执行顺序
- 【Cloud Store Announcement】Notice of Help Center Update on July 30
- 自动化早已不是那个自动化了,谈一谈自动化测试现状和自我感受……
- C陷阱与缺陷 第7章 可移植性缺陷 7.2 标识符名称的限制
- FP6606ACAW4 TQFN-20L (3mmx3mm) USB双端口充电控制器 百盛电子代理
- 莫队--优雅的暴力
- 【牛客编程题】GO语言入门46题
- 17.机器学习系统的设计
猜你喜欢

952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题

一篇文 带你搞懂,虚拟内存、内存分页、分段、段页式内存管理(超详细)

主流的深度学习推理架构有哪些呢?

Metaverse Web 3.0 和 DeFi大师班

Error occurred while trying to proxy request项目突然起不来了

查询表中开始日期与结束日期

Insert data into MySQL in C language

Daily practice------Generate 13-digit bar, Ean-13 code rule: The thirteenth digit is the check code obtained by the calculation of the first twelve digits.

浅谈在线编辑器中增量编译技术的应用

升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等
随机推荐
Ecplise执行C语言报错:cannot open output file xxx.exe: Permission denied
测试.net文字转语音模块System.Speech
基于stm32的shell实现
Google earth engine如何实现我们时间列表的排列和选取
Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)
Servo System of Hydraulic Steering Gear Based on Fuzzy PID
多年以后「PageHelper」又深深的给我上了一课
weiit新零售小程序如何探索数字化门店的破局之路
mysql刷脏的几种场景以及相关参数
PLSQL Developer安装和配置
fast shell porting
Valid bracketed strings [greedy exercise]
游戏化产品搭建思路的拆解与探究
952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题
自动化早已不是那个自动化了,谈一谈自动化测试现状和自我感受……
JMeter笔记4 | JMeter界面介绍
Py程序员的七夕情人节
bert-base调试心得
升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等
Logback的使用