IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> TypeScript常用 -> 正文阅读

[JavaScript知识库]TypeScript常用

ts数据类型
ts作为js的超集,必然还有js所有的数据类型:

  • Boolean
  • Number
  • String
  • Array
  • Function
  • Object
  • Symbol
  • undefined
  • null

Ts还新增一些数据类型:

  • void 当前方法没有返回值
  • any 这个数据的数据类型可以是任何的数据(和原来的js就完全一样了)
  • never 表示永远都不会发生值的类型
  • unknown 只能赋值给any和unknown类型的变量
  • tuple元组 多种元素的组合
  • 枚举类型 就是将一组可能出现的值, 一个一个列举出来, 定义在一个类型中,这个类型就是枚举类型 (枚举类型放常量 字符串 数字 (全大写))

类型断言:

<类型>值
值 as <类型>

类型缩小

我们可以通过类似 typeof x === "number"判断语句,来改变缩小比声明的时候更小的类型.
//typeof x === "number" ==> 类型保护(type guards)

交叉类型

type A = number|string|boolean;
//交叉类型(intersection Types)  合并
//交叉类型表示需要满足多个条件
//交叉类型使用的是&
type B = number & string
//表达的含义是number和string要同时满足
//但是不可能有一个值同时是number和string的, 所以B这个类型其实是一个never类型

Ts的接口interface

接口的声明

interface Person {
    name: string,
    age: number
}

interface的可选属性

interface Person {
    name: string,
    friend?: {
        name: string,
        age?: number,
        girlFriend?: {
            name: string
        }
    }
}

let obj: Person = {
    name: "哈哈",
    friend: {
        name: "xixi"
    }
}

console.log(obj.name)
console.log(obj.friend?.name)//如果friend存在就去读取里面的name,则返回undefind
console.log(obj.friend?.girlFriend?.name)

ts的只读属性 在name (属性)前面添加readonly 不能修改

interface和type之间有什么异同
1.interface可以重复声明 type不能重复声明
2.type定义的别名, 别名是不能重复
3.interface具有和合并的效果
ts中类的成员修饰符
1 public
修饰的是在任何地方可见 公有的属性或方法 默认编写的属性就是public的
2 private
修饰的是仅在同一类中可见 私有的属性或方法(不参与继承)
3 protected
修饰的是仅在类自身及子类中可见 受保护的属性或方法(不能读写)
4 readonly
修饰的是这个属性我们不希望外界可以任意的修改,只希望确定值之后直接使用(只能读)

Ts中的泛型

1.不确定用户传递什么类型的参数回来 那么也就不能确定返回值

2.在定义这个函数的时候, 我们不去决定这些参数的类型
而是让调用者以参数的形式告诉我们函数的参数应该是什么类型

//函数中在函数名的后面通过<形参>的形式,接受传递过来的类型
function fn<T=string>(arg:T):T{
     console.log(arg)
    return arg
}


//泛型函数调用
//1通过<类型> 的方式将类型传递给函数
fn<string>("1234")
//2通过类型推导,自动的推导出我们传入变量的类型
//  在这里会推导出他们是字面量类型, 当然字面量类型对我们的函数也是适用的
fn<number>(123)
//引用类型会推导出想要的效果
fn<number[]>([1,2,3])
fn({a:1})
fn([1,2,3])

补充
约定俗成的开发过程中一些常见名称
T: type的缩写, 类型
K/V: key和value的缩写, 键值对
E: element的缩写, 元素
O: object的缩写, 对象

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:32:45  更:2021-11-14 21:33:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 5:22:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码