【译】如何提高我的 TypeScript 技能

催命判官
• 阅读 134

在这篇文章中,我将向您展示我如何在 TypeScript 中提高自己的技能。我会向您介绍 5 个令人满意的操作符,这将帮助您更好地理解 TypeScript 和如何使用它。以下是我将要介绍的操作符:

  1. 非空断言操作符
  2. 可选链操作符
  3. 空合并操作符
  4. 明确类型断言
  5. 明确类型转换

1. 非空断言操作符

非空断言操作符是一个后置感叹号(!),它告诉 TypeScript,表达式的值不会是 null 或 undefined。这可以避免因为可能的 null 或 undefined 值而导致的类型错误。

示例:

const element: HTMLElement | null = document.getElementById("my-element");
const width: number = element!.offsetWidth;

在这里,element 可能为 null,但是我们使用非空断言操作符告诉 TypeScript 我们知道 element 的值不是 null,所以不会出现类型错误。

2. 可选链操作符

可选链操作符(?.)允许您在访问对象属性时不必担心属性是否存在。如果属性不存在,则返回 undefined

示例:

interface Person {
  name: string;
  address?: {
    city: string;
  };
}

const person: Person = {
  name: "John",
};

const city = person.address?.city;

在这里,address 属性是可选的,所以我们使用可选链操作符来安全地访问 city 属性,而不会抛出错误。

3. 空合并操作符

空合并操作符(??)是一种简洁的方式来提供默认值,当一个表达式的值为 null 或 undefined 时使用。

示例:

const value: number | null = null;
const defaultValue = 42;

const result = value ?? defaultValue;

在这里,当 value 为 null 时,result 的值将是 defaultValue

4. 明确类型断言

有时,您可能希望将一个类型明确地断言为另一个类型。您可以使用 <Type> 语法或 as Type 语法来实现这一点。

示例:

const input: unknown = "42";
const value: number = <number>(<string>input).length;

或者:

const input: unknown = "42";
const value: number = (input as string).length;

在这里,我们将 unknown 类型的 input 断言为 string,然后将其长度断言为 number

5. 明确类型转换

在某些情况下,您可能希望将一个值从一种类型转换为另一种类型。要执行此操作,您可以使用类型的构造函数。

示例:

const value: string = "42";
const numberValue: number = Number(value);

在这里,我们将 string 类型的 value 转换为 number 类型的 numberValue

了解这些操作符将帮助您更好地理解 TypeScript,并提高您的技能。希望您能善加利用这些操作符来提高您的 TypeScript 编程水平!

原文链接:https://dev.to/codeoz/how-i-improve-my-skills-in-typescript-5-satisfies-operator-2312

关注我

我是九旬,分享前端技术、AI 工具、副业探索、个人成长。

关注公众号可获取联系方式,欢迎找我交流。

【译】如何提高我的 TypeScript 技能

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java按位操作符和位移操作符
一,按位操作符。1.按位与操作符(&) 如果两个数的二进制,相同位数都是1,则该位结果是1,否则是0. 例5&4    5的二进制是 0000000000000101    4的二进制是 0000000000000100    则结果是    0000000000
劳伦斯 劳伦斯
4年前
前端面试题自检 JS CSS 部分
JS类型JavaScript的简单数据类型Number,String,Boolean,Undefined,Null,Symboltypeof操作符的返回值numberstringbooleanundefinedobjectfunction
Wesley13 Wesley13
4年前
2、typescript
有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。通过_类型断言_这种方式可以告诉编译器,“相信我,我知道自己在干什么”。类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。它没有运行时的影响,只是在编译阶段起作用。TypeScript会假设你
Stella981 Stella981
4年前
Scala学习笔记03:操作符
Scala学习笔记03:操作符一、scala中操作符与方法的等价性scala中操作符即方法、方法即操作符。scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的方法。1、操作符即方法!(https://oscimg.oschina.net/oscnet/up6852d9b70e
Easter79 Easter79
4年前
TypeScript学习笔记
TypeScript学习笔记TypeScript是JavaScript的超集,任何合法的JS程序都是合法的TypeScript程序TypeScript通过向JavaScript增加可选的静态类型声明来把JavaScript变成强类型程序语言。静态类型声明可约束函数、变量、属性等程序实体。TypeScript语言内
Wesley13 Wesley13
4年前
mysql数据过滤
1、AND操作符:select表的字段名from对应的表名where表的字段名AND表的字段名运算符值;例子:selectprod\_id,prod\_price,prod\_namefromproductswhereven\_id1003ANDprod\_price<10;2、OR操作符:sele
Wesley13 Wesley13
4年前
LUA教程表达式逻辑运算符
Lua中的逻辑操作符有and,or,以及not。 和控制结构一样,所有的逻辑操作符把false和nil都作为假,而其它的一切都当作真。andornot逻辑运算符认为false和nil是假(false),其他为真,0也是true.and和or的运算结果不是true和false,而是和它的两个操
Wesley13 Wesley13
4年前
JS中的按位非(~)的使用技巧
按位非按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码现在让我来看几个例子例子1console.log(4);console.log(~4);console.log(~~4);!(https://oscimg.oschina.net/oscnet/6d8dbec0d4685dd
Stella981 Stella981
4年前
JavaScript中的陷阱大集合(一)
函数和操作符1、双等号操作符比较时会进行类型的强制转换,这意味着它可以比较两个不同类型的对象,在执行比较之前它将会尝试把这两个对象转换成同一个类型,举一个例子:"1"  1 //true然而,这样往往会误导我们,而且我们也不需要这样子来比较。在上面的例子中,我们完全可以先将字符串转换成数字型,然后利用对类型敏感的三重等号(
Wesley13 Wesley13
4年前
ES6 展开操作符的几个妙用,老板都说好!
!(https://oscimg.oschina.net/oscnet/2728bcca60c0b9760370ba1a623ea3b5b7d.gif)  持续进步的同学都关注了“1024译站”这是1024译站的第50 篇文章ES6新增了...操作符,通常用于在函数中提取剩余参数和展开数组。但其实它的用途不止于此,本文就介绍几
Wesley13 Wesley13
4年前
C++ 里的常用头文件
<assert.h验证程序断言<complex.h支持复数算术运算<ctype.h字符类型<errno.h出错码<fenv.h浮点环境<float.h浮点常量<inttypes.h整型格式转换<iso646.h替代关系操作符宏<limits.h实现常量<locale.h局部类别<