TypeScript简洁学习笔记 By Ksanars (更新中)

前排提醒:作者只是一个在校大学生,文章内容大部分来自于自己看书看视频后的总结以及自己的推断和思考,可能会有不严谨的地方,望指正。

一句话简单暴力理解TS:
TypeScript就是在你声明的变量的后面加一个“:”,冒号后面写你限定的类型,将动态类型语言js规范为一个静态类型语言ts,使其在编译期间就发现可能存在的错误,减少后续因类型原因导致的错误

TypeScript的安装:

npm install -g typescript
从npm全局安装ts

tsc -v
通过tsc查看当前安装的ts版本

hello函数 by ts

const hello = (name : string) => {
  console.log(`hello ${name}`)
}

hello('kasnars')
复制代码

undefined是所有类型的子类型,所有类型都可以被赋值为undefined

let num : number = undefined
复制代码

将变量设为any 可以任意改变类型和调用方法 但是频繁使用any会丧失ts本身的意义,并且any类型无法触发ide的方法提示

let anydata : any  = 4
anydata = 'is string'
anydata = true
复制代码

联合类型:将变量声明为多种类型,不再为单一类型。用 ‘ | ‘ 分隔多种类型

let unitype : number | string  = 123
unitype = 'string'
复制代码

定义数组类型,对数组内的内容进行限制,例如下例将数组内容限制为number

let arrnum : number[] = [1,2,3]
arrnum.push(4)
复制代码

Tuple元组:类似于将限定了类型的多个数组组合到一起(参考pytho元组)限定几个就只能写几个,下列限定了两个数据,如果出现了第三个数据则会报错

let userinfo : [string, number] = ['kasnars', 20]
userinfo = ['lyx', 18]
复制代码

interface接口:
1.对对象形状进行描述
2.对类进行抽象
类似与事先规定好了一种类型,可以在定义类的时候直接调用这个接口来声明类型,而不用再去声明string之类

interface Person{
    name: string;
    age: number;
}

let kasnars : Person = {
    name: 'kasnars',
    age: '20'
}
复制代码

注意:interface的声明中用分号分隔,不是对象中的逗号
一般情况下interface定义了几个类型,调用这个interface的对象也得有几个类型,除非在某一个类型的后面加上问号,加上问号后在调用这个接口进行定义时,有问号的类型为可选项,例如

interface Person{
    name: string;
    age?: number;
}

let kasnars : Person = {
    name: 'kasnars'
}
复制代码

对接口里的属性添加readonly属性可以将这个属性变为只读,在初次被赋值后不可再被修改,类似与一个const常量,但是const是用于限制一个变量的,readonly用于限制对象里的一个属性。

interface Person{
    readonly id : number;
    name:string;
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享