博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
typescirpt 知识点
阅读量:5276 次
发布时间:2019-06-14

本文共 2536 字,大约阅读时间需要 8 分钟。

基础类型

常见类型

就是变量类型声明,和.NET,C#等面向对象语言一样,int类型 double float类型,float,比如数据库中的name: varchar(80)一样,ts也提供了很好的支持,比如字段、属性、方法,哈哈说远了 ,在定义字段的时候会用到变量类型声明,ts同理。

let age: number = 8;let name: string = '张三';let favorite: string[] = ['踢足球','唱歌','跳舞',...] or favorite: Array
= ['玩游戏',...]// string[] 是 Array
的简写方式,类似的Array
等同于 number[]

元组tuple

定义一组已知不同类型的数组,比较绕口,直接上代码,我现在用一个元组表示你的年龄,姓名,性别,成绩。

let MathGrade:[number,string,string,number] = [18,'李四','男',98]

现在我假定有一个成绩表,李四的成绩就是MathGrade[3]就可以直接拿到成绩了,是不是很方便

总结:元组比数组更强大,印象中的js都是好像只能够存放同一类型的数组,没有尝试过其他的

枚举类型enum

类似提前声明一组数据,这组数据中包含映射的默认值,这个东西和接口interface类似,但是这个有值,interface声明的内容一般只有类型和返回类型。

元组类型中,默认下标index是走0开始的,你可以不给赋值,默认是0往后累加,但是和下标不一样,这个下边还是走0开始的,是因为我主动给赋值了,才red变成1的。创建的c结果就是3,按照正常默认情况结果就是2~

enum Color { red = 1, green = 2, blue = 3 }let c: Color = Color.blue;console.log(c) //3console.log(Color[2]) //3

any 类型

任意类型,在你定义一个变量不知道具体类型的时候就可以用到any,可能在后边会动态复赋值。比如你在开始的时候就定义了一个

const grade:any; 因为我也不知道这是个什么类型,在后边会完善它。就可以使用any,在定义函数的时候也是一样的。当然所有变量、函数、泛型都可以使用any,但是这样你使用typescript的意义在哪里呢

const grade:any;grade= {  name: '李四',  age: 28}

void 无返回值类型

无返回值类型,一般常见于面向对象语言定义函数的时候声明public static void setName(index){ // dosomething }。es是没有的,但是我们typescript给我们提供了,是不是很方便

const readIndex = (index):void =>{ console.log(index) }

声明一个void的变量没有任何意义,大哥规定你你只能赋值两个,undefined,null

const b:void = undefined const c:void = null

null 和 undefined

在typescript中nullundefined变量是可以单独声明的,但是他们本身的用处并没有想象中那么大,但是可以直接复制给其他string或者number值类型的变量,这将变的非常有效

const b: string = null const a: number = undefined

nerver类型

对于永远不存在的类型的第一个定义,比如定义一个函数报错之后会返回什么,当然这种情况不会发生

// 返回never的函数必须存在无法达到的终点function error(msg: string){  throw new Error(message);}// 推断的返回值类型为neverfunction fail() {    return error("Something failed");}// 返回never的函数必须存在无法达到的终点function infiniteLoop(): never {    while (true) {    }}

Object 类型

object表示非原始类型,也就是除numberstringbooleansymbolnullundefined之外的类型。简单来讲object是引用类型不是值类型。

declare function setInfo(info: Object | null):void {}// 只有在传入对象类型和null类型的时候才不会报错setInfo({name:'李四'}) //oksetInfo(null) // oksetInfo(1) // errorsetInfo('李四') // errorsetInfo(undefined) // errorsetInfo(false) // error

类型断言

在某些时候你会比ts更加了解你定义的这个变量是什么类型的值,

类型断言有两种形式。 其一是“尖括号”语法:

let someValue: any = "this is a string";let strLength: number = (
someValue).length;

另一个为as语法:

let someValue: any = "this is a string";let strLength: number = (someValue as string).length;

两种形式是等价的。 至于使用哪个大多数情况下是凭个人喜好;然而,当你在TypeScript里使用JSX时,只有 as语法断言是被允许的。

转载于:https://www.cnblogs.com/HondryTravis/p/11138186.html

你可能感兴趣的文章
exit和return的区别
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
P1192-台阶问题
查看>>
Java大数——a^b + b^a
查看>>
简单的数据库操作
查看>>
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
电子眼抓拍大解密
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
国外常见互联网盈利创新模式
查看>>