1、基础数据类型

数值类型(number)

let money:number; // 定义了一个名称叫做money的变量, 这个变量中将来只能存储数值类型的数据
money = 20;
// money = "200000"; // 会报错
// 注意点: 其它的用法和JS一样
// money = 0x00;
// money = 0o00;
// money = 0b00;

布尔类型(boolean)

let flag:boolean;
flag = true;
// flag = 1; // 会报错  c语言
console.log(flag);

字符串类型(string)

let beauty:string;
beauty = "李一桐";
let dream = `我的女神是${beauty},为了她,我想月入${money}k`;
console.log(dream); 

2、数组

export default {}// 数组类型
// 方式一
// 表示定义了一个名称叫做 beautyList 的数组, 这个数组中将来只能够存储字符串类型的数据
let beautyList:string[];
beautyList = ['李嘉欣', '王祖贤', '邱淑贞'];
// arr2 = ['李嘉欣', '王祖贤', '邱淑贞', 200000]; // 报错
console.log(beautyList); // 方式二
// 表示定义了一个名称叫做 moneyList 的数组, 这个数组中将来只能够存储数值类型的数据
let moneyList:Array<number>;
moneyList = [10, 30, 500];
// moneyList = ['a', 30, 500]; // 报错
console.log(moneyList);// 方式三 联合类型
// 表示定义了一个名称叫做 dream 的数组, 这个数组中将来既可以存储数值类型的数据, 也可以存储字符串类型的数据
let dream:(number | string)[];
dream = [10, 30, 500, "李一桐", "赵露思", "白鹿"];
// dream = [10, 30, 500, "李一桐", "赵露思", "白鹿", false]; // 报错
console.log(dream);// 方式四 任意类型
// 表示定义了一个名称叫做 arbitrarily 的数组, 这个数组中将来可以存储任意类型的数据
let arbitrarily:any[];
arbitrarily = [100, '关之琳', true];
console.log(arbitrarily);

3、元组

  • 元祖类型 Tuple

  • TS中的元祖类型其实就是数组类型的扩展

  • 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同

// 表示定义了一个名称叫做 tup1 的元祖, 这个元祖中将来可以存储3个元素,
// 第一个元素必须是字符串类型, 第二个元素必须是数字类型, 第三个元素必须是布尔类型
let tup1:[string, number, boolean];
tup1 = ['宋祖儿', 100, false];
// tup1 = ['宋祖儿', 100, true, 200]; // 超过指定的长度会报错
// tup1 = [100,"宋祖儿", true];
// tup1 = ['杨超越', 100, true];
console.log(tup1); 

4.any与void

  • any: 表示任意类型, 当我们不清楚某个值的具体类型的时候我们就可以使用any

  • void: 当一个函数没有返回值时,你通常会见到其返回值类型是 void

export default {}// any类型
// any表示任意类型, 当我们不清楚某个值的具体类型的时候我们就可以使用any
// 在TS中任何数据类型的值都可以负责给any类型// 使用场景一
// 变量的值会动态改变时,比如来自用户的输入,任意值类型可以让这些变量跳过编译阶段的类型检查
let salary: any = 1800;    // 数字类型
salary = 'my salary is 18k';    // 字符串类型
salary = false;    // 布尔类型// 使用场景二
// 改写现有代码时,任意值允许在编译时可选择地包含或移除类型检查
let x: any = 4;
x.ifItExists();    // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
x.toFixed();    // 正确 // 使用场景三
// 定义存储各种类型数据的数组时
let beautyList: any[] = [1, false, 'fine'];
beautyList[1] = 100;// void类型
// 某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。
// 当一个函数没有返回值时,你通常会见到其返回值类型是 void
// 在TS中只有null和undefined可以赋值给void类型
function makeMoney(): void {console.log("I want to make much money and marry a wife!!!");// return "100K beauty" // 报错
}makeMoney()let value:void;
// 定义了一个不可以保存任意类型数据的变量, 只能保存null和undefined
// value = 100; // 报错
// value = "杨紫";// 报错
// value = true;// 报错
// 注意点: null和undefined是所有类型的子类型, 所以我们可以将null和undefined赋值给任意类型
// 严格模式下会null报错
// value = null; // 不会报错
value = undefined;// 不会报错

5.null与undefined

  • TypeScript里,undefinednull两者各自有自己的类型分别叫做undefinednull。 和 void相似,它们的本身的类型用处不是很大

  • 非严格模式下,可以把 null和undefined赋值给number类型的变量。

export default {}// TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。
// 和 void相似,它们的本身的类型用处不是很大let x: undefined = undefined;
let y: null = null;let money:number = 100;// 非严格模式下,可以把 null和undefined赋值给number类型的变量。
money = y;
money = x;

6.never与object

never类型:

表示的是那些永不存在的值的类型;

never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;

变量也可能是 never类型,当它们被永不为真的类型保护所约束

object类型

object表示非原始类型,也就是除numberstringbooleansymbolnullundefined之外的类型

定义了一个只能保存对象的变量

我们后面更常用的是 接口类型别名

// Never类型
// never类型表示的是那些永不存在的值的类型
// 例如: never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型
//      变量也可能是 never类型,当它们被永不为真的类型保护所约束时。// 注意点:never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。
//  即使 any也不可以赋值给never// 返回never的函数必须存在无法达到的终点
function error(message: string): never {throw new Error(message);
}error("鞠婧祎");// 推断的返回值类型为never
function fail() {return error("Something failed");
}// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {while (true) {}
}// Object类型
// 表示一个对象
// 定义了一个只能保存对象的变量
let goddess:object;
// goddess = 1;
// goddess = "123";
// goddess = true;
goddess = {name:'白鹿', age:27};
console.log(goddess);

7.枚举

  • enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。

// 枚举用于表示固定的几个取值
// 例如: 人的性别只能是男或者女enum Gender{ Male,Femal
}// 定义了一个名称叫做val的变量, 这个变量中只能保存Male或者Femal
let val:Gender;
val = Gender.Male;
val = Gender.Femal;
// val = 'nan'; // 报错
// val  = false;// 报错// 注意点: TS中的枚举底层实现的本质其实就是数值类型, 所以赋值一个数值不会报错
val = 666; // 不会报错
console.log(Gender.Male); // 0
console.log(Gender.Femal);// 1// 注意点: TS中的枚举类型的取值, 默认是从上至下从0开始递增的
//         虽然默认是从0开始递增的, 但是我们也可以手动的指定枚举的取值的值
// 注意点: 如果手动指定了前面枚举值的取值, 那么后面枚举值的取值会根据前面的值来递增
enum Gender2{ Male=5,Femal
}
console.log(Gender2.Male); // 5
console.log(Gender2.Femal);// 6// 注意点: 如果手动指定了后面枚举值的取值, 那么前面枚举值的取值不会受到影响
enum Gender3{ Male,Femal=10
}
console.log(Gender3.Male); // 0
console.log(Gender3.Femal);// 10// 注意点: 我们还可以同时修改多个枚举值的取值, 如果同时修改了多个, 那么修改的是什么最后就是什么
enum Gender4{ Male=100,Femal=200
}
console.log(Gender4.Male); // 100
console.log(Gender4.Femal);// 200// 我们可以通过枚举值拿到它对应的数字
console.log(Gender.Male); // 0
// 我们还可以通过它对应的数据拿到它的枚举值
console.log(Gender[0]); // Male

8.bight与symbol

#### ```typescript
export default {}// bight类型: 表示非常大的数
// symbol类型: 表示全局唯一引用
// ES2020可用// const Hundred1: bigint = BigInt(100)
// const Hundred2: bigint = 100n// const firstName = Symbol("name")
// const secondName = Symbol("name")// if (firstName === secondName) {
//   console.log('ok')
// }
```

9.变量声明与解构

  • 与js中完全一致,我们简单复习一下解构

  • ‘数组解构与对象解构

// 变量声明的方式
// var | let | const// 数组解构
let goddess = ["邱淑贞", "赵雅芝"];
let [first, second] = goddess;
console.log(first); // 邱淑贞
console.log(second); // 李紫婷let [third, ...rest] = ["赵今麦", "蒋依依", "欧阳娜娜", "李庚希"];
console.log(third); //  赵今麦
console.log(rest); // ["蒋依依", "欧阳娜娜", "李庚希"];let [, fourth, , fifth] = [1, 2, 3, 4];
console.log(fourth); // 2
console.log(fifth); // 4// 对象解构
let beauty  = {uname: "杨超越",age: 20,sex: "女",
}let { uname, age} = beauty;
console.log(uname);
console.log(age);

10.类型断言

  • 什么是类型断言?

    类型断言可以用来手动指定一个值的类型,即允许变量从一种类型更改为另一种类型。

    通俗的说就是我相信我自己在定义什么类型

  • 语法格式

    <类型>值

    值 as 类型

/*1.什么是类型断言?类型断言可以用来手动指定一个值的类型,即允许变量从一种类型更改为另一种类型。通俗的说就是我相信我自己在定义什么类型2.语法格式2.1 <类型>值2.2 值 as 类型
*/let str = "世界上最遥远的距离就是,你是if而我是else, 似乎一直相伴但又永远相离";// 方式一
// let len = (<string>str).length;
// console.log(len);// 方式二
// let len = (str as string).length;
// console.log(len);// function TypeAs(x: number | string){
//   console.log(x.length);// }// TypeAs("世界上最痴心的等待,是我当case你当switch,或许永远都选不上自己")function TypeAs(x: number | string){let len = (x as string).length;// let len = (<string>x).length;console.log(len);}
TypeAs("世界上最痴心的等待,是我当case而你当switch,或许永远都选不上自己")

11.type别名

  • 类型别名就是给一个类型起个新名字, 但是它们都代表同一个类型

例如: 你的女神叫邱淑贞, 她的外号叫女神, 女神就是邱淑贞的别名, 邱淑贞和女神都表示同一个人

export default {}// 第一种
type beautys = "邱淑贞" | "赵雅芝" | "王祖贤" | "朱茵"
let one:beautys;one = "邱淑贞";
// one = 100 // 报错// 第二种
type myfun = (a:number, b:number) => number;let fun:myfun = (a:number, b:number) => a + b;
fun(10, 20);// 第三种
type myGoddass = {name: string,age: number,sex: string,actor?: boolean
}let shuzhen:myGoddass = {name: "邱淑贞",age: 18,sex: "女"
}

typescript中的数据类型相关推荐

  1. typeScript面试必备之-通识七:typeScript中的可索引接口(数组,对象)+类类型接口...

    可索引接口:数组.对象的约束 (不常用) ts定义数组的方式 var arr:number[]=[2342,235325]var arr1:Array<string>=['111','22 ...

  2. 第四节:5种数据类型在TypeScript中的运用

    在上一节<第三节:快速编译TypeScript,提高开发效率>,我们学习了如何结合IDE快速地帮助我们编译TypeScript,有了这个辅助功能,我们的开发效率就大大提高. 接下来,我们就 ...

  3. 第七节:在 TypeScript 中什么是类型推论?

    上一节,我们学习了TypeScript中的一种新的数据类型:元组Tuple.没学习上一节的同学可以戳:<又一种新的数据类型:元组Tuple> 这一节,我们一起来学习一下TypeScript ...

  4. TypeScript 中类型 any,void,unknown,never之间的区别

    文章出自个人博客 https://knightyun.github.io/2021/04/03/js-ts-type-compare,转载请申明 TypeScript 拓展了 JavaScript 的 ...

  5. 【进阶】TypeScript 中的 Type

    一 .什么是 TypeScript TypeScript 是静态编程语言 , 是 JavaScript 的超集 简而言之:JavaScript 有的 TypeScript 都有.JavaScript ...

  6. 1.1 typescript中的interface

    一.java中的interface java 1.interface中的除非静态.非default方法都是抽象方法,只有定义,没有实现 2.interface中的变量都是常量,被final stati ...

  7. 【TypeScript】从零开始玩转TypeScript - TypeScript中的接口

    前言 小伙伴们大家好.前几篇文章我们已经学习了TypeScript中的基本语法,数据类型以及类的抽象类.今天将继续学习TypeScript中的另一个知识点 - 接口. 不知道小伙伴们有没有了解过后端语 ...

  8. TypeScript中数组和元祖

    TypeScript中数组和元祖 本文我们讨论下TypeScript中数组和元祖,讨论两者之间的区别以及应用场合. 1. 数组 在TypeScript中数组可以存储元素集合,可以同一类型或不同类型.可 ...

  9. Java语言中的数据类型

    Java语言是一种强调数据类型的语言,在声明任何变量时,必须将该变量定义为一种数据类型. Java中的数据类型包括基本类型和对象类型,基本类型总共有8种,其中4种整形.1种字符型.2种浮点型.1种布尔 ...

最新文章

  1. SMO学习笔记(三)——效验数据库备份文件
  2. python文件替换一行_python基础_文件操作实现全文或单行替换的方法
  3. BRCM SDK 版本IPv6问题
  4. 个人永久性免费-Excel催化剂功能第26波-正确的Excel密码管理之道
  5. jQuery手风琴图切换特效插件
  6. codeforces 932E Team Work 高等数学求导、dp
  7. LeetCode 163. 缺失的区间
  8. Ubuntu 16.04 orb-slam2配置
  9. [OI学习笔记]最小生成树之Prim算法
  10. js常用设计模式实现(一)单例模式
  11. 深圳大学计算机保护一志愿吗,考研保护第一志愿是什么意思?哪些院校官宣保护一志愿?...
  12. offer oracle svp_SVP - Uncyclopedia
  13. S7-1200 PLC的常见扩展模块
  14. CSDN博客运营团队2022年H1总结
  15. excel表格如何转换成word表格_Word表格如何转为Excel表格?这2个小技巧轻松搞定!
  16. js移动手机号码验证
  17. Python 利用pandas 获取Excel重复记录
  18. vue如何实现打印功能
  19. 美国计算机科学学会会长,美国计算机科学computerscience 专业
  20. iOS证书申请打包上传App Store审核完整流程(7个步骤)

热门文章

  1. Selenium自动化测试-元素定位的八种方法,你知道的有几种?
  2. Windows打开pages文稿
  3. 用HTML制作简单的自我介绍
  4. mt4双线macd_3年内从亏损90多万到获利近760万,我只坚持我的:60分钟MACD双回拉战法!附选股公式...
  5. 武汉游记,三天找工作之旅终于结束了
  6. 相机畸变原因与去畸变原理与代码
  7. 【软件定义汽车】【服务篇】SOA的核心----服务化
  8. Apache Karaf 学习和安装
  9. 畅谈程序员挣钱的几种方式,自媒体还是比较靠谱逆袭之路
  10. pdf预览引发的vue项目只允许Chrome浏览器访问