TypeScript入坑

简介: TypeScript入坑

TypeScript入坑


TypeScript

菜鸟教程

ts官网

安装

$ npm i -g typescript

安装完毕后,可在命令行中使用 tsc 命令测试是否安装成功:

$ tsc --version

可查看到版本信息,则说明安装成功

TypeScript 基础语法

类型注解:在变量定义时,需要声明变量的数据类型

const 变量名: 数据类型 = 变量值

监视模式:

tsc 文件名–watch

在监视模式下运行编译器。会监视输出文件,在它们改变时重新编译成js文件,避免重复手动操作。

ts => js

tsc 文件名

TypeScript 基础类型

  • string
  • number
  • boolean
  • 数组
  // 数组
  let arr: number[] = [3, 2, 4, 1]
  let array: Array<string> = ['a', 'b', 'c']

元组:元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同

  // 元组
  let arr3: [number, string, boolean] = [1, 'a', true]

enum:枚举

  // 枚举:枚举类型用于定义数值集合
  enum Color {Red, Green, Blue}
  let color1: Color = Color.Red
  let color2: Color = Color.Green

any: 声明为 any 的变量可以赋予任意类型的值

  // any
  let v: any = 1
  v = 'abc'
  v = true

类型断言

语法:

<类型>值
// 或
值 as 类型
  // 类型推断
  let str = '1' // string
  // 类型断言
  let str2: number = <number> <any> str
  console.log(str2)  //string '1'

类型推断

当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。

如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。

函数

语法:

function fnName(
  param1: datatype,
    param2: datatype = defaultValue,
    param3?: datatype,
): returntype {
    // return '表达式'
}

剩余参数:

函数体内部 …args剩余运算符

展开运算符 …

联合类型

类型1|类型2|类型3

接口、类、对象

相当于是定义类时使用到的模板

  // 接口
  interface IPerson {
    name: string,
    age: number,
    sex: string,
    eat: (food: string) => string,
    sleep: () => void,
  }
  // class
  class Student implements IPerson {
    name: string;
    age: number;
    sex: string;
    constructor(name: string, age: number, sex: string) {
      this.name = name
      this.age = age
      this.sex = sex
    }
    eat(food: string): string {
      return '吃东西:' + food
    }
    sleep(): void {
      console.log(this.name + ' 睡觉')
    }
  }
  // 对象
  let stu: IPerson = new Student('张三', 18, '男')
  stu.sleep()
  let food: string = stu.eat('土豆丝')

泛型

主要是实现重用

例:

function identity<T>(arg: T): T {
    return arg;
}

实现功能:定义一个函数,要求参数类型与返回值类型一致。

<T> 的定义就是一个泛型的结构。

T 可看作是一个类型变量

调用:

const val = identity<number>(35)
// 注意,参数是 number 类型,返回值也是 number 类型
相关文章
|
7月前
|
存储 JavaScript 前端开发
TypeScript 实用技巧(上)
TypeScript 实用技巧(上)
71 0
|
7月前
|
JSON JavaScript 前端开发
TypeScript 实用技巧(中)
TypeScript 实用技巧(中)
53 0
|
7月前
|
JavaScript 前端开发 编译器
【TypeScript技术专栏】深入理解TypeScript编译过程
【4月更文挑战第30天】TypeScript编译过程包括解析、类型检查、语义分析和代码生成四个步骤。解析阶段将源代码转为AST;类型检查确保代码符合类型规则,捕获类型错误;语义分析检查代码逻辑一致性;最后生成JavaScript代码。这一过程保证了代码的语法、类型和语义正确性,提升开发效率和代码质量。了解此过程有助于开发者更好地理解和解决问题。
79 0
|
7月前
|
JavaScript 前端开发 安全
2020你应该知道的TypeScript学习路线【Typescript基础介绍】
2020你应该知道的TypeScript学习路线【Typescript基础介绍】
68 2
|
7月前
|
JavaScript 前端开发 编译器
10分钟让你吃透 《TypeScript》 函数
TypeScript提供了丰富的函数类型定义方式,可以对函数参数、返回值进行类型注解,从而提供了更为强大的类型检查。
|
7月前
|
JavaScript 前端开发 测试技术
TypeScript 实用技巧(下)
TypeScript 实用技巧(下)
46 0
|
7月前
|
JavaScript 前端开发 安全
推荐12个值得学习的TypeScript宝库!
推荐12个值得学习的TypeScript宝库!
110 0
|
7月前
|
JavaScript
【TypeScript学习】—TypeScript开发坏境搭建(一)
【TypeScript学习】—TypeScript开发坏境搭建(一)
|
JavaScript 前端开发 安全
【typescript入门手册】初识typeScript
【typescript入门手册】初识typeScript
|
JavaScript 索引
TypeScript深度剖析:TypeScript 中高级类型的理解?有哪些?
TypeScript深度剖析:TypeScript 中高级类型的理解?有哪些?
91 0