第一次学习ts,第一次写文章,有不对的地方欢迎指正后续会继续补充滴~
ts的学习地址: www.tsdev.cn/interfaces.…
ts的初次使用流程
- 安装Typescript 打开cmd(管理员),安装完成后可输入tsc -v查看版本,若提示为Version 5.6.5则安装成功
npm i -g typescript
yarn global add typescript
- 在vscode新建一个test.ts文件(vscode可以安装一个 ts-node,可以提示语法错误)
- ts运行不可在浏览器上,所以须在项目终端安装,安装完成后右键会出现run code选项,则可本地运行
npm install -g @types/node
ts的常见语法使用及注意事项
- ts和js的类型结构 ts 的常用基础类型分为两种:
mindmap
Root
js 已有类型
ts 新增类型
原始类型:number/string/boolean/null/undefined/symbol
对象类型:object(包括,数组、对象、函数等对象)
- 基础类型
let a:number = 1 // 定义a为数字类型,a若赋值为"1"则会报语法错误
- 联合类型
let a:number | string = 1 // a赋值1、'1'都为true、
- 类型别名
// 简单类型
type a = string
let b:a = '1' // b的数据类型为a
// 复杂类型
type Person = {
name: string,
age: number
sayHi(): void
}
let person: Person = {
name: '小花',
age: 18
sayHi() {}
}
- 字面量类型
let str1 = 'hello TS' // str1为string类型 let 可以设置任意类型
const str2 = 'hello TS' // str2为 hello TS类型 const为固定类型 不可改变
- 枚举类型(一般大写开头)
enum Direction {
Up = 2,
Down = 3,
Left = 8,
Right = 16
}
Direction.Up
- any
let a:any = 1/undifined // any支持任何值
- 对象类型
let arr:Array<string | number> = ['1', 2] // 只需含有这俩种类型就行
let arr:number[] = [1, 2, 3]
- 函数类型
// 函数类型
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)
}
- 接口相关
// 接口名称推荐以 `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 三个属性)
- 元组(没太懂)
- 范式
- 高级函数