typescript学习笔记

devtools/2024/9/24 6:31:29/

TypeScript 是 JavaScript 的一个超集,添加了静态类型、接口、枚举等特性,使得代码更易于维护和扩展。以下是学习 TypeScript 的一些基本笔记和概念:

  1. 基本类型
    布尔值: boolean
    数字: number
    字符串: string
    数组: number[] 或 Array
    元组: [string, number]
    枚举: enum Color { Red, Green, Blue }
    任意类型: any
    空值: null 和 undefined
    void: 表示没有任何类型或返回值的函数
    never: 表示永远不会出现的值的类型
  2. 类型注解
    类型注解为变量、函数参数和函数返回值提供了类型信息。

typescript
let isDone: boolean = false;
function greet(name: string): void {
console.log(Hello, ${name}!);
}
3. 接口
接口定义了一个对象的形状,它可以描述一个类的一部分结构,也可以描述一个对象的结构。

typescript
interface Person {
name: string;
age: number;
greet(): void;
}
4. 类
TypeScript 支持基于类的面向对象编程。

typescript
class Student implements Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(Hello, my name is ${this.name});
}
}
5. 泛型
泛型允许你在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

typescript
function identity(arg: T): T {
return arg;
}

let output = identity(“myString”); // 输出 “myString”
6. 类型断言
有时候你会比 TypeScript 更确定一个值的类型。这时你可以使用类型断言来告诉 TypeScript 忽略自己的类型检查。

typescript
let someValue: any = “this is a string”;
let strLength: number = (someValue).length;
// 或者使用 as 语法
let strLength2: number = (someValue as string).length;
7. 模块和命名空间
TypeScript 支持 ES6 模块和命名空间(类似于其他语言中的包或库)。

  1. 装饰器
    装饰器是一种特殊类型的声明,它可以被附加到类声明,方法,属性,或参数上。装饰器使用 @expression 的形式,expression 求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。

  2. 配置文件 tsconfig.json
    tsconfig.json 是 TypeScript 项目的配置文件,它包含了编译选项和其他设置。

  3. 编译 TypeScript
    使用 TypeScript 编译器(tsc)将 TypeScript 代码编译为 JavaScript 代码。

  4. 工具链和库
    TSLint(已弃用,建议使用 ESLint):用于 TypeScript 的代码质量和风格检查工具。
    Prettier:代码格式化工具,可以与 ESLint 集成。
    TypeDoc:从 TypeScript 源代码生成文档的工具。
    Angular, React, Vue 等前端框架都支持 TypeScript。
    以上只是 TypeScript 的基本内容,实际上 TypeScript 还有许多高级特性和用法等待你去探索和学习。


http://www.ppmy.cn/devtools/26955.html

相关文章

学习VUE2第6天

一.请求拦截器 可以节流,防止多次点击请求 toast是单例 二.前置路由守卫 在Vue.js中,前置路由守卫是指在路由转换实际发生之前执行的钩子函数。这是Vue Router(Vue.js官方的路由管理器)提供的一种功能,允许开发者在用…

64、二分-搜索二维矩阵

思路: 通过使用二分方式,对于每行进行二分,因为每行的最后一个数小于下一行的第一个数,我们就可以依次二分。首先取出行数N,然后从0-N进行二分,如果mid最后一个数小于目标值说明0-mid中没有,舍弃…

为什么在Windows窗体项目中采用三层架构(一个项目加两个类库)

在Windows窗体项目中采用三层架构(一个项目加两个类库)是软件开发中常用的架构模式,旨在提高应用程序的可维护性、可扩展性和灵活性。这种架构通常包括以下三层: 表示层(UI层或前端):这是用户与…

题目 1452: 网络寻路

题目描述: X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。 源地址和目标地…

小剧场短剧影视小程序源码_后端PHP

项目运行截图 源码贡献 https://githubs.xyz/boot?app42 部署说明 linux/win任选 PHP版本:7.3/7.2(测试时我用的7.2要安装sg扩展 ) 批量替换域名http://video.owoii.com更换为你的 批量替换域名http://120.79.77.163:1更换为你的 这两个…

3.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式:malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) (了解) 4. 常…

自定义SpringBoot启动图标

在SpringBoot项目的resources目录下创建banner.txt文件 在https://www.bootschool.net/网站上复制Ascll艺术字(图)粘贴到banner.txt中保存。 启动项目就会加载 可以修改颜色,和版本号 ${application.version} 输出版本 ${spring-boot.v…

第三十章:docker如何部署openresty

docker如何部署openresty 目标 了解docker 中volumes数据卷的读写控制通过 openresty 配置掌握挂载nginx.confOpenResty OpenResty(又称ngx_openresty)是一个基于Nginx的可伸缩的Web平台,由中国人章亦春发起。它利用了Nginx模块化、可扩展的特性,开发了一系列的增强模块,…