TypeScript学习(二)

1.JS/TS中有哪些数据类型

JS中的数据类型其实是值的类型,如:

var age = 15、var name = '张三'、var a = true

TS中的数据类型是指变量的类型:

type number = 1|1.1|2|30...、type string = a|b|ab|c|sadda...、type boolean = true|false('|'为并)

type Object = {?} | Array | Function | String | Number | Boolean | RegExp(正则表达式) | ...

关于大小写的number/string/boolean:

js的历史遗留问题

var n = 42、 var m = new Number(42)

当使用42.toFixed(2)时:

JS中的Number、String、Boolean只用于包装对象,正常开发者不用它们,在TS里也不用。

2.如何在TS里描述对象的数据类型:

1.用class/constructor描述

2.用type或interface描述

用类型签名和Record描述对象:

由于object太不精确,所以TS开发者一般使用类型签名Record泛型来描述普通对象

注:索引签名的类型必须是string、number、symbol或者模板自变量类型。

3.如何在TS里描述数组对象:

用[ ]和Array泛型来描述数组:

由于Array太不精确,所以TS开发者一般用Array<?>string[ ][string,number](二元组)等写法来描述数组。

注:若type A = [1,2,3], 则const a:A  = [1,2,3], 否则报错。

4.如何在TS里描述函数对象:

type FnA = (a:number, b:number) => number // 有两个number类型的参数,返回值为number的函数

const a:FnA = (x, y) => { return 123}
//const a:FnA = (x) => {return 123}  (参数可以少传或不传)

a(1,2)  //调用的时候必须传完整的参数

type FnReturnVoid = () => void  //返回值为void

type FnReturnUndefined = () => undefined //返回值为undefined

const f1: FnReturnVoid = () => { console.log(hi) }

const f2: FnReturnUndefined = () => { console.log(hi)   return undefined }

可以调用this的函数写法:

type Person = {name:'aa',age:12,sayHi:FnWithThis}  // 定义Person

type FnWithThis = (this:Person , name:string) => void // 定义FnWithThis函数

const sayHi : FnWithThis = function() { console.log('hi' + this.name) } // 声明sayHi函数

const x:Person = {name:'asdsad',age:22, sayHi:sayHi} // 声明x对象

x.sayHi('Jack') / sayHi.call(x,'Jack')  // 两种调用方式

5.其他对象一般用class描述:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值