美文网首页
TypeScript类型声明

TypeScript类型声明

作者: 华戈的小书 | 来源:发表于2020-08-09 19:30 被阅读0次

在 TypeScript 中,字面量也是一种类型:

type Name = 'ziting'
const myName: Name = 'ziting'

在上面的代码中,Name 类型唯一合法的值就是 ziting 这个字符串 —— 这看起来毫无意义,但如果我们引入前面提到的集合运算(联合类型)呢?

type Method = 'GET' | 'PUT' | 'DELETE'

interface Request {
  method: Method
  url: string
}

上面的代码中我们约束了 Request 的 method 只能是 GET、PUT 和 DELETE 之一,这比单纯地约束它是一个字符串类型要更加准确。这是 JavaScript 开发者经常使用的一种模式 —— 用字符串来表示枚举类型,字符串更灵活也更具有可读性。

在 lodash 之类的库中,JavaScript 开发者还非常喜欢使用字符串来传递属性名,在 JavaScript 中这很容易出错。而 TypeScript 则提供了专门的语法和内建的工具类型来实现对这些字符串字面量的计算,提供静态的类型检查:

interface Todo {
  title: string
  description: string
  completed: boolean
}

// keyof 将 interface 的所有属性名提取成一个新的联合类型
type KeyOfTodo = keyof Todo // 'title' | 'description' | 'completed'
// Pick 可以从一个 interface 中提取一组属性,生成新的类型
type TodoPreview = Pick<Todo, 'title' | 'completed'> // {title: string, completed: boolean}
// Extract 可以找到两个并集类型的交集,生成新的类型
type Inter = Extract<keyof Todo, 'title' | 'author'> // 'title'

如果想要简单调试ts的特性,可以在这里TypeScript练习
在线调试。

相关文章

  • TypeScript中的基本数据类型

    TypeScript中的基本类型 TypeScript中的基本类型: 类型声明类型声明是TS非常重要的一个特点;通...

  • TypeScript类型声明

    在 TypeScript 中,字面量也是一种类型: 在上面的代码中,Name 类型唯一合法的值就是 ziting ...

  • 5. 使用TypeScript

    在本章中,我们将讨论: Deno中的TypeScript概述。在Deno中配置TypeScript。类型和类型声明...

  • TypeScript基础类型声明

    1、布尔值 2、数字类型 和JavaScript一样,typescript里的所有数字都是浮点型,这些浮点数的类型...

  • Typescript类型声明整理

    1.常见类:number类、string类、boolean类 声明一个变量a,同时指定它的类型为number 声明...

  • typescript语法

    参考:typescript参考1 typescript参考2 函数参数类型定义 声明函数参数默认值 ...

  • Typescript基础语法2--interface

    我们在之前讲过给变量进行类型声明,Typescript会对值所具有的结构进行类型检查。在Typescript里,接...

  • 学习typescript- Basic Types

    1.typescript基本声明类型有多少个种?分别怎么声明? Boolean Number(不管是所有类型,浮点...

  • typescript学习(1)

    静态类型的理解 VS 动态类型 typeScript的静态类型:声明的类型不能接受别的类型的数据 动态类型: 静态...

  • autojs声明文件

    声明文件是什么 声明文件是typescript中的概念, 主要用来描述变量类型, 声明文件不包含实现,它只是类型声...

网友评论

      本文标题:TypeScript类型声明

      本文链接:https://www.haomeiwen.com/subject/ukcmrktx.html