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 类型
相关文章
|
11月前
|
运维 监控 安全
交换机镜像之流镜像,有哪些分类?
【10月更文挑战第3天】
564 1
交换机镜像之流镜像,有哪些分类?
|
6月前
|
XML Java 数据库连接
二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
195 21
|
2月前
|
JavaScript API C++
TypeScript 核心概念:`type` vs `interface`,如何明智选择?
TypeScript 核心概念:`type` vs `interface`,如何明智选择?
|
2月前
|
人工智能 缓存 监控
GitHub 8k star!Portkey AI Gateway 如何帮你3行代码接入1600+ LLM,实现成本、可靠性与安全三赢?
Portkey AI Gateway 是一个轻量级、高速、安全的中间层,帮助应用对接多模态 AI 模型,统一管理,快速落地。支持超1600款语言、视觉、音频、图像模型,通过 1 个 API 接口实现快速、可靠、安全的模型路由。具备智能路由、自动重试、缓存机制、合规控制等功能,助力企业高效构建 AI 应用。
110 0
|
5月前
|
人工智能 自然语言处理 Java
通义灵码:AI编程助手如何重塑开发者的效率革命?
通义灵码是阿里云推出的一款基于通义大模型的智能编程助手,支持Java、Python、Go等主流语言,并深度适配VSCode、JetBrains等开发环境。其核心功能包括自然语言转代码、跨文件上下文理解、行级/函数级实时补全、自动生成单元测试及性能优化建议等。此外,还提供知识问答引擎、文档智能生成和研发大数据分析等进阶功能,助力开发者提升效率。通过重构生产关系,将重复劳动转化为创造性工作,使技术债务可视化,推动人机协同编程新时代的到来。
239 1
|
5月前
|
人工智能 Cloud Native 虚拟化
VMware vSphere 7.0 Update 3u 发布 - 数据中心虚拟化和云原生平台
VMware vSphere 7.0 Update 3u 发布 - 数据中心虚拟化和云原生平台
172 0
VMware vSphere 7.0 Update 3u 发布 - 数据中心虚拟化和云原生平台
|
6月前
|
数据可视化 数据挖掘 BI
Quick BI评测报告
Quick BI评测报告
198 2
|
6月前
|
人工智能 搜索推荐 开发者
Kiss3DGen:基于图像扩散模型的3D资产生成框架
Kiss3DGen是一个创新的3D资产生成框架,通过重新利用预训练的2D图像扩散模型,高效生成、编辑和增强3D对象,支持文本到3D、图像到3D等多种生成任务。
208 5
|
8月前
|
数据采集 存储 数据处理
Pandas数据应用:时间序列预测
本文介绍了使用 Pandas 进行时间序列预测的方法,涵盖时间序列的基础概念、特征(如趋势、季节性等),以及数据处理技巧(如创建时间序列、缺失值处理和平滑处理)。同时,文章详细讲解了简单线性回归和 ARIMA 模型的预测方法,并针对常见问题(如数据频率不一致、季节性成分未处理)及报错提供了解决方案。通过这些内容,读者可以掌握时间序列预测的基本步骤和技巧。
213 27
|
8月前
|
人工智能 自然语言处理 搜索推荐
《解锁鸿蒙Next系统人工智能语音助手开发的关键步骤》
在鸿蒙Next系统上开发人工智能语音助手应用,需经历环境搭建、权限申请、集成语音识别、自然语言处理、语音合成及智能交互逻辑设计等关键步骤。开发者使用DevEcoStudio工具,引入Core Speech Kit和NLP服务,实现从语音输入到文本理解再到语音输出的全流程开发。通过多轮对话、个性化功能和全面测试优化,打造稳定可靠的语音助手应用,提供智能便捷的用户体验。
415 22