ts

发布时间 2023-04-21 16:19:16作者: 青&&风

第一章、定义变量

指定类型就在给这个变量赋值能赋值指定类型的值

// 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()//调用方法