TS的基本数据类型

string

let str : string

str = 1 //报错 会提示num是字符串 不是数字
str = 'test' //正确 //拼接字符串
let str2 : string
str2 = `this is a ${str}`
console.log(str2) //this is a test

number

// ts 与 js 一样所有数字类型 都是浮点型
let num : number
num = 'test' //报错
num = 1 //正确

enum 枚举

enum school{
teacher,
student,
employee
}
//默认情况下 techer = 0 ,student = 1,employee = 2
enum school{
teacher,
student = 2,
employee
}
//这种情况 student = 2 , employee = 3 ,teacher = 0
enum school{
teacher = 2,
student,
employee
}
//这种情况 student = 3 , employee = 4 ,teacher = 2

never

never 是任何类的继承 但是任何 不能赋值给 never

boolean

let isTure : boolean
isTrue = true
isTrue = 'test' //报错
isTrue = 123 //报错

元组

let test : [string,number]
test = ['test',123] //只有第一个是字符串 第二个是数字才能通过

数组

let test : number[]
test = ['sadas',1] //报错 因为声明了是number数组

any

//就跟js var 声明一样  用这个起不到ts的优势

类型断言

//让编译器相信 coder写的一定是 对的
//比如 number不能有 length这个属性 但是我又想知道是几位数
let num : number = 100
let num111 : number = 123
console.log((num111 as string).length) //报错 联合声明才能用 最好在函数里用
console.log((<string>num).length) //报错 不能强制转换类型
console.log(num as string).length) //报错 不能强制转换类型 //正确用法
//断言有两种写法
1. xx as xx
2. <string>num
function getLength2(something: string | number) :number {
if ((something as string).length) {
return (something as string).length
}else{
return something.toString().length;
}
}

void

某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void:

function warnUser(): void {

alert("This is my warning message");

}

注意:声明一个void类型的变量没有什么大用,因为你只能为它赋予undefined和null

let unusable: void = undefined;

null 和 undefined

TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大:// Not much else we can assign to these variables!

let u: undefined = undefined;

let n: null = null;

never

never类型表示的是那些永不存在的值的类型。 例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。

下面是一些返回never类型的函数:

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
} // 推断的返回值类型为never
function fail() {
return error("Something failed");
} // 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}

部分内容学习了 https://www.jianshu.com/p/57d94e4eb01a

Ts基本数据类型的更多相关文章

  1. TypeScript——02——TS基本数据类型介绍和使用

    一,TS的数据类型 ES6的数据类型: 6种基本数据类型 Boolean Number String Symbol undefined null 3种引用类型 Array Function Objec ...

  2. TS 基础数据类型

    1.基础数据类型 Boolean布尔值   Number数字 String字符串  Array数组 Tuple元组  Enum枚举   Any    void Boolean布尔值:true/fals ...

  3. ts常用数据类型

    1.1 布尔值 let isTrue: boolean = false; console.log(isTrue); 1.2 数字 let age: number = 26; console.log(a ...

  4. TypeScript学习第二天:认识ts的数据类型

    目录 1,类型总览 2,基本类型 2.1,布尔 2.2,数字 2.3,字符串 2.4,Null 2.5,undefined 2.6,symbol 2.7,bigint 3,引用类型 3.1,数组 Ar ...

  5. typeScript入门(一)构建环境和数据类型

    最近入坑v-cli 3.0,发现ts越来越常用了,于是开始入坑学习. 1.构建ts环境 npm install -g typescript Mac和vscode用户可以用以下方式构建tsdemo项目 ...

  6. 感受typescript定义变量和数据类型的神奇魔力

    变量和数据类型 你的Javascript能力到达瓶颈?那是因为你还不会typescript.掌握TS,让你的开发更加准确简洁. 今天的学习中,我们接着从TS的数据类型和变量入手,感受它们的奇妙魔力. ...

  7. 手摸手教你用 yapi-to-typescript生成Yapi的TypeScript数据类型

    一 背景 现代社会比较重视效率,本着这个思想宗旨,能用工具自动高效做的事情,就不要低质量的勤奋.yapi-to-typescript就是一款自动生成接口请求与响应的typescript数据类型定义的工 ...

  8. java基础之集合框架

    6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...

  9. 基于 libpcap库的sniffer程序

    基于 libpcap库的sniffer程序 Libpcap库是WireSharek和Tcpdump抓包程序的基础,利用libcap我们自己也可以实现自己的抓包程序,在网络上实时抓包分析,或者利用处理的 ...

随机推荐

  1. Python 应用爬虫下载QQ音乐

    Python应用爬虫下载QQ音乐 目录: 1.简介怎样实现下载QQ音乐的过程: 2.代码 1.下载QQ音乐的过程 首先我们先来到QQ音乐的官网: https://y.qq.com/,在搜索栏上输入一首 ...

  2. sqli-labs lesson 11-15

    从这一关开始我们开始进入到post注入的世界了,什么是post呢?就是数据从客户端提交到服务器端,例如我们在登录过程中,输入用户名和密码,用户名和密码以表单的形式提交,提交到服务器后服务器再进行验证. ...

  3. DVWA-全等级跨站请求伪造

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...

  4. Java入门姿势【面向对象3】构造方法及其重载_方法的调用

    上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...

  5. 06.SpringBoot核心技术

    目录 一.配置文件 二.Web开发 静态资源访问 欢迎页支持 自定义 Favicon 普通参数和基本注解 1.1 @PathVariable 1.2 @RequestHeader 1.3 @Reque ...

  6. C# 如何在编译时将 dll 复制到 bin\Release 目录下

    下面假设 Project 名为 Gamma4RTD,需要调用的 dll 文件为 rtddll.dll.IDE 是 Visual Studio 2015 打开 Visual Studio 2015 -& ...

  7. C#串口通信SeriPort 电表DLT645 RS234/RS485

    难受,三个多月前有一个电表电量监控的项目.做完了就没再管了.今天有需求需要改一些地方,但是....我想不起来干了啥,怎么干的啦.真的完全忘了.....项目名称叫啥都忘了.找了半天 不知道有没有和我一样 ...

  8. vs2019 实现C#调用c++的dll两种方法

    1.托管与非托管的区别 2.非托管类的实现 第一步:创建C++空项目(命名Caculate)添加一个类AddOperate 第二步:将C++代码编译成动态库dll 第三步:将dll拷贝到c#项目输入目 ...

  9. WPF---依赖属性(一)

    一.概要 C#中属性是抽象模型的核心部分,而依赖属性是专门针对WPF的. 在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使得我们可以通过和以前一样的方式来使用依赖属性. 依赖属性优点如下: ...

  10. 11.SpringMVC之HttpMessageConverter

    HttpMessageConverter简介 HTTP 请求和响应的传输是字节流,意味着浏览器和服务器通过字节流进行通信.但是,使用 Spring,controller 类中的方法返回纯 String ...