TypeScript学习笔记——第二节

1. 类型限制

1. ts可以在变量声明时规定类型

let a: number //规定了变量a的值只能是number
let b: string //规定了变量b的值只能是string
b = false //报错,类型不匹配

2. 如果变量的声明和赋值同时进行,ts会自动规定类型

let c = “hello” //自动规定变量c为string类型,此处可以省略类型声明

3. 对函数进行类型限制

function sum(a: number, b: number): number{
	return a + b
}

上述代码,ts规定了sum函数的参数,返回值类型都为number,当类型不匹配时会报错,此外,ts还会限制传入的实参个数,不同于形参个数时同样报错
需要注意的是,初始ts虽然会报错,但仍可以编译,并产生对应的js文件

2. TS的类型

在这里插入图片描述

1. 字面量类型

let a: 10; //规定变量a的值只能为10
a = 10;
a = 11; // 报错:不能将类型“11”分配给类型“10”
let sex: "male" | "female"; 
sex = "male";
sex = "female";
// 可以使用|(且)来连接多个类型(联合类型)
// 也可以使用&(或)详细看object类型
let b: string | boolean; 
b = "hello";
b = false;

2. any类型

any表示的是任意类型,设置类型为any后,相当于ts对该变量关闭了类型检测(使用极少)

let d: any; //显式指明类型为any
let e; //声明时不赋值,不指明类型,会自动看做any类型(隐式指明)
d = 10;
let f: string = d; 
//d的类型是any,可以赋值给任意类型的值(区别于unknown类型)

3. unknown类型

unknown表示的是未知类型

let g: unknown = "hello";
g = false
let f: string = g; //此处会报错,类型不匹配(区别于any类型)

实际上是一个类型安全的any,unknown类型的变量不能直接赋值给其他变量
解决方式:

  1. 赋值前进行类型判断
  2. 类型断言:用来告诉解析器变量的实际类型
let e: unknown = "hello"
s = e; //直接赋值会报错
s = e as string;
s = <string>e;
 语法:变量 as 类型 或 <类型>变量

4. void类型

void用来表示空值(undefined),多用于规定函数没有返回值

function fn(): void {} //表示函数没有返回值

5. never类型

never表示永远不会返回结果

6. object类型

object表示对象(很少使用)

//基本使用(对象)
let a: object;
a = {};
a = function(){}

//规定对象的属性组成及类型
let b: {name: string, age?: number};//属性名后跟?表示可选属性
b = {};//报错:缺少类型
b = {name: 'wmh'};
b = {name: 'wmh', age: 18}

//规定除了name属性必需,还可以添加其他属性(属性名为string,值为any)
let e : {name: string, [propName: string]: any};

//使用&来判断满足两个对象
let f : {name: string} & {age: number};//表示需要同时满足两个内容
f = {
	name: 'wmh',
	age: 18
}
//基本使用(函数)
let a:(b: number, c:number) => number;//规定参数及返回值的类型
a = function(b, c){return b + c}

7. array类型

array表示一个数组

//写法一
let a: string[];//表明一个字符串数组
a = [12,12,12];//报错:类型不匹配
//写法二
let b: Array<number>;//表示一个数字数组

8. tuple类型

tuple表示一个元组,元祖就是固定长度的数组

//基本使用
let a: [string, string];
a = ['wmh', 'abc'];

9. enum类型

enum表示一个枚举,

//使用方法
enum Sex {
	Female,
	Male
}
let person: {name: string, sex: Sex};//规定sex为Sex枚举类
person = {
	name: 'wmh',
	sex: Sex.Male
}
if(person.sex === Sex.Male)

3. 其他有关于类型使用

1. 类型的别名

type myType = string;
let a: myType;//相当于let a: string
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
08-10
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值