ts
第一章、定义变量
指定类型就在给这个变量赋值能赋值指定类型的值
// 1.声明变量,
let dName: string = '泰嘉'
console.log(dName);
// dName = 11 //这里报错 说这个number类型不能赋值给string
第二章、数据类型
// 1.字符类型 `` ''
let ddName: string = '貂蝉'
console.log('-------------------');
// 2. 数据类型[number]
let dAge: number = 12
dAge = 19.2
dAge = -10
console.log('-------------------');
// 3.布尔值类型[boolean] true /falsea
let inSingDong: boolean = true
inSingDong = false
console.log('-------------------');
// 4.udefind 和null
let undef: undefined = undefined
let nul: null = null
console.log('-------------------');
// 5.数组[Array]
// 字符串了类型的数组
let footerArray: string[] = ['苹果', '香蕉', '车厘子', '栗子']
console.log(footerArray[0]);
// 数字类型的数组[number]
let priceArray:number[]=[12,12,23,34]
// 泛型类型的数组写法
let footerAge: Array<string> = ['大桥', '悟空', '典韦']
console.log('-------------------');
// 6.元组[tuple] :概念:就是一个规定了元素数量和每个元素类型的数组
let tupArray: [string, number, boolean] = ['你好', 11, true]
tupArray = ['哈哈', 23, false]
// 访问元组 和长度
console.log(tupArray[0]);
console.log(tupArray.length);
console.log('-------------------');
// 7.枚举[enum],定义标识符
// 创建性别枚举
enum Gender {
boy = 1,
giler = 2,
qita=3
}
console.log(Gender.boy);
console.log(Gender.giler);
console.log(Gender.qita);
// 使用枚举
let userGender:Gender=Gender.boy
console.log(userGender);
if (userGender === Gender.boy) {
console.log('相等');
} else {
console.log('不相等');
}
console.log('-------------------');
// 8.任意类型[any] 一般用在dom操作
let getDom:any=document.getElementById('container')
// 9.没有返回值类型[void],一般用在没有返回值的函数
//9.1 有返值类型的函数
function sayName(): string{
return '你好'
}
let res1 = sayName()
// 9.2 无返回值类型的函数
function sayHi2(): void {
console.log('哈哈');
}
sayHi2()
// 10.不存在值的类型[never] 一般用在抛出错误或者无限循环的函数返回值的类型
function test(): never {
while (true) { }
}
function test2(): never {
throw new Error('哈哈')
}
// never值可以赋值给任意类型的值
// 11.数据类型推断
// 概念:如果变量的声明和初始化时在同一行,可以省略变量类型的声明
// eg:
let num1 = 19 //如果给变量重新赋值就会报错
// 12.联合类型
// 概念:表示取值可以为多种类型中的一种
// eg:
let Dom1: string | null = prompt('请输入内容')
console.log(Dom1);
第三章、函数
// 1.函数 有返回值类型
function sayHi(): string{
return '哈哈'
}
let ret: string = sayHi();
console.log(ret);
// 2.函数形参 类型 无返回值
function jumpSan(cityName: string): void {
console.log('你要去哪里'+cityName);
}
// 注意:
// 2.1 ts中实参和形参必须一致
jumpSan('昆明')
// 2.2 ts中形参和实参数量必须一致
jumpSan('南京')
// 2.3.可选参数 用?号表示可选参数不用传递
function sayHi1(num1?: number): void {
console.log('数字'+num1);
}
sayHi1()
// 2.4 默认参数 可以不用传递实参,也可以传递参数,不传递参数使用默认参数
function number1(num1: number = 1, num2: number = 2): number{
return num1+num2;
}
let res: number = number1()
console.log(res);
// 2.5 剩余参数 数量不确定的参数
function add(x: number, y: number, ...resFname: number[]) {
// 创建一个求和变量,保存x+y的结果
let result:number=x+y
// 使用for of 循环数组里面剩余的元素
for (let els of resFname) {
result+=els
console.log('结果是:'+result);
}
}
add(1, 2)
add(1,2,4,54,64)
// 特点:
// 1.剩余参数 只能定义一个
// 2.剩余的参数只能定义为数组
// 3.剩余的参数只能定义在形参列表最后
第四章、类
class City{
// 成员变量
name: string
age: number
// 构造函数
constructor(cname: string, cage: number) {
this.name = cname
this.age=cage
}
about() {
console.log(`姓名:${this.name},年龄:${this.age}`);
}
}
// 创建对象
let c1 = new City('李飞', 18);
console.log(c1.name);//访问变量
c1.about()//调用方法