TypeScript
文章平均质量分 81
Kingsaj
这个作者很懒,什么都没留下…
展开
-
TypeScript入门实战笔记 -- 07 接口类型与类型别名:这两者的用法与区别分别是什么?
在以上示例中,你可能会觉得接口类型仅能用来定义对象的类型,但是接口类型还可以用来定义函数的类型(备注:仅仅是定义函数的类型,而不包含函数的实现),具体示例如下。/** 单独的函数实践 */在示例第 1~3 行,我们定义了一个接口类型 StudyLanguage,它有一个函数类型的匿名成员,函数参数类型 ProgramLanguage,返回值的类型是 void,通过这样的格式定义的接口类型又被称之为可执行类型,也就是一个函数类型。原创 2023-12-26 14:54:14 · 127 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 06 类类型:如何高效使用类型化的面向对象编程利器?
在上面的例子中我们可以看到,第 3 行 Son 类的 lastName 属性是私有的,只在 Son 类中可见;类的最后一个特性——类的类型和函数类似,即在声明类的时候,其实也同时声明了一个特殊的类型(确切地讲是一个接口类型),这个类型的名字就是类名,表示类实例的类型;在第 1~5 行,我们定义了一个包含 x、y、add 属性和方法的接口类型(详见 07 讲),然后在第 6~12 行实现了拥有接口约定的x、y 属性和 add 方法,以及接口未约定的 addTwice 方法的NumAdder类。原创 2023-12-18 10:48:50 · 115 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 05 函数类型:返回值类型和参数类型到底如何定义?
在上述代码中,函数 log3 的函数参数 x 的类型为可选的联合类型 number | string,但是因为默认参数字符串类型是联合类型 number | string 的子类型,所以 TypeScript 也会检查通过。因此,如果我们将默认值设置为字符串类型,编译器就会抛出一个 ts(2322) 的错误。在上述代码中,在添加返回值类型的地方,我们通过“参数名 + is + 类型”的格式明确表明了参数的类型,进而引起类型缩小,所以类型谓词函数的一个重要的应用场景是实现自定义类型守卫(详见第 11 讲)。原创 2023-12-15 14:39:43 · 345 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 04 什么是字面量类型、类型推断、类型拓宽和类型缩小?
1:使用vscode 新建一个 04.Literal.ts 文件,运行下列示例。2:执行 tsc 04.Literal.ts --strict --alwaysStrict false --watch 执行:nodemon 04.Literal.js 前面我们已经学习了 TypeScript 的基本语法和基础类型,接下来通过几个例子温习一下(为了避免命名冲突,后续示例中会引入一对花括符 {} 创建块级作用域):看着上面的示例,定义基础类型的变量都需要写明类型注解,TypeScript 太麻烦了吧?在示原创 2023-12-14 11:41:03 · 132 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 03 复杂基础类型:TypeScript 与 JavaScript 有何不同?
在恒为 false 的类型守卫条件判断下,变量的类型将缩小为 never(never 是所有其他类型的子类型,所以是类型缩小为 never,而不是变成 never)。注意:类型断言的操作对象必须满足某些约束关系,否则我们将得到一个 ts(2352) 错误,即从类型“源类型”到类型“目标类型”的转换是错误的,因为这两种类型不能充分重叠。我们可以对被注解为 any 类型的变量进行任何操作,包括获取事实上并不存在的属性、方法,并且 TypeScript 还无法检测其属性是否存在、类型是否正确。原创 2023-12-13 14:33:29 · 132 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 02 简单基础类型:TypeScript 与 JavaScript 有何不同?
TypeScript 其实就是类型化的 JavaScript,它不仅支持 JavaScript 的所有特性,还在 JavaScript 的基础上添加了静态类型注解扩展。这里我们举个例子来说明一下,比如 JavaScript 中虽然提供了原始数据类型 string、number,但是它无法检测我们是不是按照约定的类型对变量赋值,而 TypeScript 会对赋值及其他所有操作默认做静态类型检测。原创 2023-12-12 13:44:11 · 113 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 01 如何快速搭建 TypeScript 学习开发环境?
特别需要注意的是,VS Code 默认使用自身内置的 TypeScript 语言服务版本,而在应用构建过程中,构建工具使用的却是应用路径下 node_modules/typescript 里的 TypeScript 版本。基于它,我们无须在本地安装环境,只需要一个浏览器即可随时学习和编写 TypeScript,同时还可以方便地选择 TypeScript 版本、配置 tsconfig,并对 TypeScript 实时静态类型检测、转译输出 JavaScript 和在线执行。原创 2023-12-11 10:23:41 · 431 阅读 · 0 评论 -
TypeScript入门实战笔记 -- 开篇 为什么要选择 TypeScript ?
TypeScript 是一种静态类型检查的编程语言,它由 Microsoft 开发和维护。相比竞争对手 Facebook 的 Flow,TypeScript 更具备类型编程的优势,而且还有 Microsoft、Google 这两家国际大厂做背书。越来越多的主流框架(例如 React、Vue 3、Angular、Deno、Nest.js 等)要么选用 TypeScript 编写源码,要么为 TypeScript 提供了完美的支持。随着 TypeScript 的普及,TypeScript 在国内(国内滞后国外)原创 2023-12-09 16:57:20 · 136 阅读 · 0 评论 -
Property ‘ ‘ does not exist on type ‘AxiosResponse<any, any>‘.
vue的axios请求返回值调取时报下面这错误:Property ‘rows’ does not exist on type ‘AxiosResponse<any, any>’.解决方法是新增一个 axios.d.ts 文件,内容如下import * as axios from 'axios'declare module 'axios' { interface AxiosInstance { (config: AxiosRequestConfig): Promise&原创 2022-05-07 14:24:35 · 6014 阅读 · 0 评论 -
TypeScript - 笔记(1) - 创建基本的ts项目
创建基本的ts项目新建test 文件夹,创建index.html, min.ts文件终端使用 tsc min.ts 命令,将.ts文件,转换为.js 文件点击vscode终端管理器// 创建 package.json 文件npm init 安装 lite-server 轻量级的仅适用于开发 的 node 服务器, 它仅支持 web app, 它能够为你打开浏览器, 当你的html或是JavaScript文件变化时,它会识别到并自动帮你刷新浏览器, 还能使用套接字自动注入变化的CS原创 2022-02-07 22:20:15 · 1837 阅读 · 0 评论