Typescript 基础知识

  TypeScript 简称:TS,是 JavaScript 的超集,简单来说就是:JS 有的 TS 都有。从编程语言的动静来区分,TypeScript 属于静态类型的编程语言,JavaScript 属于动态类型的编程语言,TS在编译期做类型检查,而JS是在执行期做类型检查,在这一点上来说,TS能更早的发现错误,这样可以减少我们查找、修改bug的时间。

        使用TS需要编译器,因为浏览器不认识TS,需要工具将TS转化为JS

        安装命令:npm i -g typescript 或者 yarn global add typescript

        验证是否安装成功:tsc –v


原始数据类型:number / string / boolean / null / undefined

  // number
  let a:number = 10

 // boolean
  let b:boolean = false

  // string
  let c:string = '1234'

  const d:undefined = undefined
  console.log(d)

  const e:null = null
  console.log(e)

其中,undefined 和 null 是所有类型的子类型,也就是说 undefined / null 类型的变量,可以赋值给 number 类型的变量,而 void 类型的变量不能赋值给 number 类型的变量

let n:string = null/undefined

空值:在 TypeScript 中,可以用 void 表示没有任何返回值的函数

 // void 空值,表示没有任何返回值的函数
 function fn1():void {
    console.log(123456)
 }
 console.log(fn1())
 

任意值:any

  // any 任何类型
 let h:any = 123
  h = null
  h = undefined
h = []
h = new String()
h = String
console.log(h)
let newARR:any[]=[,2,3,'',true]
console.log(newARR)

数组:有两种写法

  // Array
  let arr:number[] = [1, 2, 3]
  arr = [4, 5, 6]
  console.log(arr)
  const arr1:Array<number> = [7, 8, 9]
  console.log(arr1)

对象

  let obj:object = {}


类型推论:TS会在没有明确的指定类型的时候推测出一个类型

let g;

 

联合类型:表示取值可以为多种类型中的一种

 注意:当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法

接口:它是对行为的抽象,用于对「对象的形状(Shape)」进行描述,简单理解为一种约束

// 定义接口
interface IPerson{
    id:number,
    name: string,
    age: number,
}
    
let p:IPerson={
        id: 123321,
        name: 'tom',
        age: 19,
}

console.log(p)

 可以看到,p与IPerson的变量和变量的类型是一致的,因为我们约束了p的形状必须和接口IPerson一致,定义的变量比接口少了一些、多了一些属性是不允许的,会报错。

接口-可选属性:有时不想完全匹配一个形状,这时候可以使用可选属性,在定义的属性名后面机上?即可,这样在调用接口是不定义sex属性也不会报错。

sex?: string

但是这时候仍然不允许添加未定义的属性,比如接口里只有A、B、C三种属性,定义对象T时,T里面多出了个D属性,会直接报错。

接口-任意属性:有时想要一个任意属性在接口里,可以这么定义

[propName:string]:any

使用 [propName: string] 定义了任意属性取 string 类型的值,需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集,例如定义[propName:string]:string, 确定属性和可选属性只能定义为string的子集。

一个接口中只能定义一个任意属性。如果接口中有多个类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值