声明变量要加上变量类型
- 因为js对声明变量太过于开放,在声明之后可以重新赋值为别的数据类型,在方便实用的同时,可能会对以后造成更大的问题
let nextIndex:number = 999;
let isClose:boolean = false;
若声明变量时不加变量类型会自动对变量类型进行检测
let index = 123; index = true; // 报错
变量类型
string
字符串
let a: string = 'hello'
number
数字
let a: number = 100
boolean
布尔值
let a: boolean = false
any
不指定类型,相当于js,关闭了ts的类型检测
let a: any
a = 10
a = true
a = 'hello'
若是不写类型,默认any
// any类型可以赋值给任意类型变量
let a;
a = 10
a = true
a = 'hello'
unknown
未知变量 不可以直接赋值给其他类型变量
let a: unknown
a = 10
a = true
a = 'hello'
let b:string = 'today'
b = a // 报错
if(typeof a === 'string') {b = a}
// 或者类型断言,两个格式都行
b = a as string;
b = <string>a;
void
表示为空
function fn():void{
return;
return true; // 报错
}
{}
可以用来表示对象里包含哪些属性 属性名后加上?表示该属性可选填
// let a :{name:string, age?:number}
// a = { name: 'tangyujing' }
// [propName:string]:any
可以表示任意类型的属性
let a: { name: string, [propName: string]: any }
a = { name: 'tangyujing', age: 25, gender: '男' }
function
函数类型
// 设置函数结构类型: (a:参数类型,b:参数类型)=>返回值类型
let a: (a: number, b: number) => number
a = function (n1, n2) {
return n1 + n2
}
a = (n3, n4) => { return 10 }
array
数组类型
// 设置数组结构类型: 类型[] 或者 Array<类型>
let a: string[]
a = ['a', 'b', 'c']
let b: Array<number>
b = [1, 2, 3]
tuple
元组:限制长度的数组
let a: [string, number, number]
a = ['a', 1, 2]
enum
枚举
enum Gender {
Male, Female
}
let a: { name: string, gender: Gender }
a = { name: 'tyj', gender: Gender.Male }
不支持隐式转换
ts:
console.log(2 - '1'); // 报错
console.log(2 + '1'*1); // 报错
console.log(2 - '1'/1); // 报错
js:
console.log(2 - '1'); // 1
console.log(2 + '1'* 1); // 3
console.log(2 + '1'/1); // 3
支持+
+number
进行 string => number
console.log(2 - +'1'); // 1
字符串前加+
号,可以将string转化成number,仅针对字符串内容为纯数字
string没有length属性
let gender:string = '性别男'
console.log(gender.length); // 不执行
数组创建&基本操作
let arrays:string[] = ['aaa','bbb','ccc']
console.log(arrays); // ['aaa','bbb','ccc']
// 获取
console.log(arrays[1]); // bbb
// 修改
arrays[0] = 'ddd'
console.log(arrays); // ['ddd', 'bbb', 'ccc']
// 添加
arrays[arrays.length] = 'eee'
console.log(arrays); // ['ddd', 'bbb', 'ccc', 'eee']
函数的参数和返回值也可以定义数据类型
function sum(a: number, b: number): number {
return a + b
}
可以使用字面量直接声明
let a: 10
a = 10
a = 20 // 报错
可以使用 |
来连接多个类型(联合声明)
let b: 'name' | 'age'
b = 'name'
b = 'age'
let c: number | boolean
c = false
c = 100
&表示同时类似于与
let a: { name: string } & { age: number }
a = { name: 'tyj', age: 25 }
类型的变量 类型较长较为复杂时使用
type Gender = 'male' | 'female' | number
let a: Gender;
a = 'male'
a = 0
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。