TypeScript 类面向对象是一种对现实世界理解和抽象的方法。TypeScript 是一种面向对象的编程语言,支持基于类的面向对象编程。面向对象主要有两个概念:对象和类。对象:对象是类的一个实例,有状态和行为。例如,一个student是一个对象,他的状态有:年纪、名字、性别;行为有:说话、上课等。
类:类是一个模板,它描述一类对象的行为和状态。
方法:方法是类的操作的实现步骤。类描述了所创建的
转载
2023-08-08 10:37:02
90阅读
聊聊 TypeScript 中的类型保护在 TypeScript 中使用联合类型时,往往会碰到这种尴尬的情况:interface Bird {
// 独有方法
fly();
// 共有方法
layEggs();
}
interface Fish {
// 独有方法
swim();
// 共有方法
layEggs();
}
function
转载
2023-11-03 12:10:20
86阅读
类型保护是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。类型保护具有唯一的属性,可以确保测试的值是根据返回的布尔值设置的类型。TypeScript使用了一些内置的JavaScript操作符,比如typeof、instanceof和in操作符,这些操作符用于确定一个对象是否
转载
2023-08-06 13:16:44
241阅读
类型保护 对于联合类型的变量,在使用时如何确切告诉编译器它是哪一种类型 通过 类型断言 或者 类型保护 如下我写了一个示例代码,就是一个 getRandomValue 函数,通过生成的随机数,来决定返回的是 string 还是 number 类型,那么我想如果是 string 类型则调用 .leng
原创
2021-12-02 22:31:00
116阅读
TypeScript基础入门之高级类型的类型保护与区分类型 项目实践仓库https://github.com/durban89/typescript_demo.git
tag: 1.4.3为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。npm install -D ts-node后面自己在练习的时候可以这样使用npx ts-n
转载
2024-08-07 10:27:15
88阅读
interface Bird{ fly: boolean, sing: ()=>{} } interface Dog{ fly: boolean, bark: ()=>{} } /** * animal: Bird | Dog这就是一个联合类型 * animal 既可以是 Bird 又可以是 Dog
转载
2020-06-17 06:48:00
112阅读
2评论
在 TypeScript 中使用联合类型时,往往会碰到这种尴尬的情况: interface Bird { // 独有方法 fly(); // 共有方法 layEggs(); } interface Fish { // 独有方法 swim(); // 共有方法 layEggs(); } functio
转载
2020-10-20 17:01:00
97阅读
2评论
环境搭建typescript 安装npm install typescript -g // 全局安装ts目录结构tsconfig.json配置内容{ "compilerOptions": { "target": "ES2015", // 编译的目标标准 "outDir": "./dist", // 编译后的文件输出目录 "watch": true // 进入监听模式,文件发生变动立即重新编译 }, "include"
原创
2021-07-09 10:48:18
136阅读
文章目录类型保护typeofinstanceofin字⾯量类型保护自定义类型保护类型操作typeofkeyofin类型兼容 类型保护在 JavaScript 中通过判断来处理⼀些逻辑,在 TypeScript 中这种条件语句块还有另外⼀个特性:根据判断逻辑的结果,缩⼩类型范围(有点类似断⾔),这种特性称为 类型保护 ,触发条件:
逻辑条件语句块:if、else、elseif特定的⼀些关键字
转载
2023-09-02 21:47:13
80阅读
聊聊 TypeScript 中的类型保护 在 TypeScript 中使用联合类型时,往往会碰到这种尴尬的情况: 如上所示,getSmallPet 函数中,既可以返回 Fish 类型的对象,又可以返回 Bird 类型的对象。由于返回的对象类型不确定,所以使用联合类型对象共有的方法时,一切正常,但是使 ...
转载
2021-05-19 14:41:07
107阅读
2评论
在使用TypeScript进行开发时,我们经常需要处理不同类型的变量。虽然TypeScript提供了强大的类型推断和静态类型检查功能,但在某些情况下,变量的类型可能是联合类型(Union Types),这意味着它可以是多种类型中的一种。为了确保代码的安全性和可维护性,我们需要使用**类型保护(Type Guards)**来区分这些不同的类型。
什么是类型保护?
类型保护是一种运行时检查机制,用于
在使用TypeScript进行类型守卫(Type Guard)判断时,我们常常关注的是代码的安全性和可读性。然而,在大型项目或高频调用场景中,类型保护的实现方式可能会影响运行时性能。本文将探讨如何在保证类型安全的前提下,对类型保护进行性能优化,解决一个常见的技术痛点:避免重复、低效的类型判断逻辑。
技术痛点:类型保护的重复执行带来性能损耗
考虑如下典型代码片段:
function process
一.组合类型交叉类型(intersectiontypes)组合多个类型产生新类型,源类型间存在“与”关系,例如:interfaceObjectConstructor{assign<T,U>(target:T,source:U):T&U;}(摘自TypeScript/lib/lib.es2015.core.d.ts)Object.assign能把source:U身上的可枚举属性浅
原创
2021-01-13 15:57:25
606阅读
目录本文概览:1. 类型断言2. 双重断言3. 类型保护(1)自定义类型保护(2)typeof 类型保护(3)instanceof 类型保护本
原创
2022-07-12 17:52:46
1302阅读
点赞
在本文中,回顾了TypeScript中几个最有用的类型保护,并通过几个例子来了解它们的实际应用。
原创
精选
2022-06-17 10:16:05
615阅读
点赞
typescript基本类型学习笔记。一. 布尔值 boolean。 取值为true/false二. 数字在JavaScript 中整数和浮点数都属于 Number 数据类型。TypeScript里的number类型包括整数和浮点数。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015(ES6)中引入的二进制和八进制字面量。let decL
转载
2024-03-04 11:17:34
48阅读
在很多情况下,TypeScript 会根据上下文环境自动推断出变量的类型,无须我们再写明类型注解。例如:let str = 'string'
let num = 1
let bool = true
// 两个块级作用域
const str = 'string'
const num = 1
const bool = true但是这两个示例不完全等价,你可以在 VsCode 中将鼠标 hover
转载
2023-09-04 17:21:30
67阅读
目录1.Partial 转化可选属性 (?)2.Required 转化必填属性 (-?)3.Readonly 转化仅读属性 (readonly)Mutate(非内置,与 Readonly 相对) (-readonly)4.Pick 挑选所需的属性5.Omit 忽略属性在前几章的笔记中,了解了以下几种内置类型:条件类型相关:Exclude 排除类型(差集),Extract 抽取类型(交集),NoNu
转载
2023-07-26 21:57:16
245阅读
作者 | geekAbyte以下为译文:在本文中,我们来简要地讨论一下 TypeScript 中的三种有趣的类型:any、unknown 与 never。我们来快速了解一下这三种类型,以及何时使用它们。首先,集合论非常适合用来分析类型系统。TypeScript 中的 Union 和 Interp 类型就大量使用了集合论。但其思想非常简单。定义一个类型类似于定义一个集合。集合包含什么?它们
转载
2024-01-27 13:32:03
35阅读
学习目标: TS 中的高级类型有很多,重点学习以下高级类型: 1. class 类 2. 类型兼容性 3. 交叉类型 4. 泛型 和 keyof 5. 索引签名类型 和 索引查询类型 6. 映射类型//以下只说明了class类,需要其他的请跳转主页TypeScript目录学习目标:class 类class的基本使用为class类添加属性(实例属性初始化)构造函数实例方法类的继承extends(
转载
2023-11-24 00:35:38
61阅读