ts的学习笔记

242 阅读2分钟

第一次学习ts,第一次写文章,有不对的地方欢迎指正后续会继续补充滴~

ts的学习地址: www.tsdev.cn/interfaces.…

ts的初次使用流程

  1. 安装Typescript 打开cmd(管理员),安装完成后可输入tsc -v查看版本,若提示为Version 5.6.5则安装成功
npm i -g typescript
yarn global add typescript
  1. 在vscode新建一个test.ts文件(vscode可以安装一个 ts-node,可以提示语法错误)

image.png

  1. ts运行不可在浏览器上,所以须在项目终端安装,安装完成后右键会出现run code选项,则可本地运行
npm install -g @types/node

ts的常见语法使用及注意事项

  1. ts和js的类型结构 ts 的常用基础类型分为两种:
mindmap
      Root
            js 已有类型
            ts 新增类型
    

原始类型:number/string/boolean/null/undefined/symbol

对象类型:object(包括,数组、对象、函数等对象)

  1. 基础类型
let a:number = 1 // 定义a为数字类型,a若赋值为"1"则会报语法错误 
  1. 联合类型
let a:number | string = 1 // a赋值1、'1'都为true、
  1. 类型别名
// 简单类型
type a = string
let b:a = '1' // b的数据类型为a 
// 复杂类型
type Person = { 
    name: string, 
    age: number 
    sayHi(): void
} 
let person: Person = { 
    name: '小花',
    age: 18 
    sayHi() {}
}
  1. 字面量类型
let str1 = 'hello TS' // str1为string类型 let 可以设置任意类型
const str2 = 'hello TS' // str2为 hello TS类型 const为固定类型 不可改变
  1. 枚举类型(一般大写开头)
enum Direction { 
   Up = 2, 
   Down = 3, 
   Left = 8, 
   Right = 16
}
Direction.Up
  1. any
let a:any = 1/undifined // any支持任何值
  1. 对象类型
let arr:Array<string | number> = ['1', 2] // 只需含有这俩种类型就行
let arr:number[] = [1, 2, 3]
  1. 函数类型
// 函数类型
function add(x: number = 1, y: string): number){ // 需定义每一个传参的数据类型和函数返回值的数据类型 1为默认值
    return y
}

type Fn = (n1:number,n2:number) => number 
const add3 : Fn = (a,b)=>{return a+b } // 函数类型继承

function del(a: number, b?: string){} // ?可选参数 一定在默认参数之后 

// void以下几种情况(设置函数返回值类型时使用)
   函数没写return
   只写了 return, 没有具体的返回值
   return 的是 undefined
function(a:number):void{
    console.log('hello' + name)
}
  1. 接口相关
// 接口名称推荐以 `I` 开头 
interface IGoodItem { 
    name: string, 
    price: number, 
    func: ()=>string
} 
// 声明接口后,直接使用接口名称作为变量的类型 
const good1: IGoodItem = { 
    name: '手表', 
    price: 200, 
    func: function() { return '看时间' }
}

// 接口继承
interface a { x: number; y: number } 
interface b extends a { z: number } // b 继承 a
// 继承后,b 就有了 a 的所有属性和方法(此时,b 同时有 x、y、z 三个属性)
  1. 元组(没太懂)
  2. 范式
  3. 高级函数