目录
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数据类型,它允许我们定义⼀组命名常量。 使⽤枚举去创建⼀组不同的案例变得更加容易。它是相关值的集合,可以是数字值或字符串值
泛型
泛型是提供创建可重⽤组件的⽅法的⼯具。 它能够创建可以使⽤多种数据类型⽽不是单⼀数据类型的组件。 ⽽且,它在不影响性能或⽣产率的情况下提供了类型安全性。 泛型允许我们创建泛型类,泛型函数,泛型⽅法和泛型接⼝。