ts数据类型

目录

1.js里面有的

1.基本数据类型

数字(number)

字符串(string)

布尔值(boolean)

空(null)

未定义(undefined)

唯一值的  (symbol)

2.引用数据类型

数组(Array)

对象(Object)

函数 (function)

2.ts新增

没有类型(void)

任意数据类型(any)

从来不存在的类型(never)

未知类型(unknown)

元组(tuple)

联合数据类型

类型别名(type)

接口(interface)

枚举

泛型


1.js里面有的

1.基本数据类型

数字(number)

let num:numder = 1

字符串(string)

let str:string = ''

布尔值(boolean)

let bool:boolean = true

空(null)

let n:null = null

未定义(undefined)

let u:undefined = undefined 

唯一值的  (symbol)

let s:symbol = Symbol(2)

2.引用数据类型

数组(Array)

有三种方式定义数组

第一种:在元素类型后面接上[]

let arr:number[] = [1,2,3]

第二种:使用数组泛型,Array<元素类型>

let arr:Array<number> = [1,2,3]

第三种:使用接口: 

interface IStudent {
    name: string,
    age: number,
    like: string
}
let opj: IStudent = {
    name: '字符串',
    age: 10,
    like: '打篮球'
}

对象(Object)

let obj: {
    name: string
    age: number
    num: number
} = {
    name: '1234',
    age: 10,
    num: 47
}

函数 (function)

定义函数的约束 //输入(参数)和 输出(返回值)进行的约束

function fn(x: number, y: number): number {
    return x + y
}

2.ts新增

没有类型(void)

void: 没有任何类型。例如:⼀个函数如果没有返回值,那么返回值可以定义为void。
function warnUser(): void {
   console.log("空");
}
warnUser()

任意数据类型(any)

any : 动态的变量类型(失去了类型检查的作⽤)

为编程阶段还不清楚类型的变量指定⼀个类型。 这些值可能来⾃于动态的内容,⽐如来⾃⽤户输⼊或第三⽅代码库。 这种
情况下,我们不希望类型检查器对这些值进⾏检查⽽是直接让它们通过编译阶段的检查。
let num:any = 1 //数字

let num:any = '字符串' //字符串

let num:any = true //布尔值 

//等,可以是如何类型

从来不存在的类型(never)

never : 永不存在的值的类型。例如:never 类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的 返回值类型
function fn(): never {
    throw new Error('报错')
}
fn()

未知类型(unknown)

未知类型比any更安全

unknown : 任何类型的值都可以赋给 unknown 类型,但是 unknown 类型的值只能赋给 unknown 本身和 any 类型
//any 
let a:any = 1
console.log(a.name)

//unknown 
let u:unknown = {name:1}
console.log(u.name)

元组(tuple)

元组:特殊形式的数组(知道数组内有几个元素并且知道每一个元素的数据类型)

let arr:[number,string,boolean] = [1,'',true]

联合数据类型

let a:number|string = '' //可以是字符串也可以是数字

类型别名(type)

类型别名 type 自定义类型的名字=

type 重名会报异常, 可以声明基本类型别名,联合类型,元组等类型

type 语句中还可以使⽤ typeof 获取实例的类型进⾏赋值

type TStudent = {
    name: string,
    age: number,
    like: string
}
let opj: TStudent = {
    name: '字符串',
    age: 10,
    like: '打篮球'
}

接口(interface)

用来描述对象的形状的

interface 能够合并多个同名声明

interface Iuser {
    user: string
    paassword: numder
    code: string
   [props: string]: string | undefined | number// 索引签名任意属性
}

 let user: Iuser = {
    user: '',
    paassword: 123,
    code: '',
    a: 1,
    b: 2
}

枚举

枚举是TypeScipt数据类型,它允许我们定义⼀组命名常量。 使⽤枚举去创建⼀组不同的案例变得更加容易。它是相关值的集合,可以是数字值或字符串值

泛型

泛型是提供创建可重⽤组件的⽅法的⼯具。 它能够创建可以使⽤多种数据类型⽽不是单⼀数据类型的组件。 ⽽且,它在不影响性能或⽣产率的情况下提供了类型安全性。 泛型允许我们创建泛型类,泛型函数,泛型⽅法和泛型接⼝。

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值