TypeScript学习记录

一.安装

    1.npm i typescript -g

    2.tsc -v

二.基础类型

1.声明变量

    (1) var、let、const 都可以使用

//声明字符串
let str:string = '这是一个字符串'

//声明数字
let count:number = 3
let nan:number = NAN
let infinityNum:number = Infinity

//声明布尔值
let bool:boolean = true

let n:null = null

let u:undefined = undefined

//在非严格模式下 可以交叉赋值:n=a  a=n

三.任意类型

  • //any  任意类型
  • //unknow  不知道的类型
  • unknow 类型只能赋值给自身,或者any 类型
  • 从上到下具有包含关系:
  1. top type 顶级类型 any、unknow
  2. Object
  3. Number、 String、Boolean
  4. number、string、boolean
  5. 1    'text'  false
  6. never

unknow类型没有办法读其任何属性,不能调用其任何方法,如下是错误的

let testUnknow:unknow = {
    name: '张三',
    job:()=>{

    }
}


//如下是获取不到的
testUnknow.name
testUnknow.job()

any可以是可以的

四.接口和对象类型

1.接口 interface

(1)一般用来定义对象

注:首字母大写、不能多属性不能少属性,要完全一样的属性

interface User = {
    name: "张三"
}

let person:User = {
    name: "张三"
}
(2)特点

遇到重名的会重合

interface User = {
    name: "张三"
}


interface User = {
    age: 18
}

//等价于

interface User = {
    name: "张三",
    age: 18
}

let person = {
    name: "张三",
    age: 18
}

利用索引签名可以自定义其他属性

//propName 是属性名,所以是字符串类型
//其值的类型不可以定义成string,否则上边的name、age 都会变成string,导致报错
interface User = {
    name: string,
    age: number,
    [propName: string]:any
}


let person:User = {
    name: "张三",
    age: 18,
    a:1,
    b:false
}

定义可选值

//后端返回的age可有可无时,加一个问号?
interface User = {
    name: string
    age?: number
}


let person:User = {
    name: "张三"
}

设置只读模式,不可以修改的属性 readonly

注:常用于后端返回的id,和定义一个函数

interface User = {
    name: string
    age?: number
    readonly id: number
    readonly cb:()=>boolean
}


let person:User = {
    name: "张三",
    id:1,
    cb: ()=>false
}

//以下代码会报错
User.cb = ()=>true

定义函数类型(用的比较多)

//参数是name,必须是字符串类型,返回值必须是一个数字类型的数组
interface Fn = {
    (name:string):number[]
}

const fn:Fn =  function (name:string){
    return [1,2]
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值