基础类型

常见类型

就是变量类型声明,和.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> = ['玩游戏',...]
// string[] 是 Array<string>的简写方式,类似的Array<number> 等同于 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) //3
console.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);
}
// 推断的返回值类型为never
function 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:'李四'}) //ok
setInfo(null) // ok
setInfo(1) // error
setInfo('李四') // error
setInfo(undefined) // error
setInfo(false) // error

类型断言

在某些时候你会比ts更加了解你定义的这个变量是什么类型的值,
类型断言有两种形式。 其一是“尖括号”语法:

let someValue: any = "this is a string";
let strLength: number = (<string>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

typescirpt 知识点相关推荐

  1. 解释型语言与编译型的必须知识点

    解释型语言与编译型的必须知识点 概念: 计算机不能理解直接理解高级语言,只能理解机器语言,所以必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种: 编译 解释 两种翻译 ...

  2. YOLOV4知识点分析(二)

    YOLOV4知识点分析(二) 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org/ab ...

  3. YOLOV4知识点分析(一)

    YOLOV4知识点分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:https://arx ...

  4. 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里

    引言    DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...

  5. 简练软考知识点整理-范围确认易混概念

    与确认范围容易混淆的知识点包括,确认范围与核实产品.质量控制.项目收尾,下面进行比较分析. (1)确认范围与核实产品 核实产品是针对产品是否完成,在项目(或阶段)结束时由发起人或客户来验证,强调产品是 ...

  6. 朴素贝叶斯知识点概括

    1. 简述 贝叶斯是典型的生成学习方法 对于给定的训练数据集,首先,基于特征条件独立假设,学习输入/输出的联合概率分布:然后,基于此模型,对于给定的输入x,根据贝叶斯定理求后验概率最大的输出y 术语说 ...

  7. 计算机二级函数知识,2017年全国计算机二级考试MS Office高级应用知识点:INDIRECT函数...

    INDIRECT函数知识点 适用考试:全国计算机二级考试 考试科目:MS Office高级应用 科目知识点:INDIRECT函数 INDIRECT函数立即对引用进行计算,并显示其内容.当需要更改公式中 ...

  8. python如何创建一个类_python (知识点:类)简单的创建一个类

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Mon Nov 14 01:01:29 2016 ...

  9. 全国计算机二级vfp知识点,全国计算机二级VFP知识点总结

    全国计算机二级 Visual FoxPro 数据库程序设计 --知识点整理资料 文件扩展名及备注文件扩展名 文件 项目 表 程序 单索引 查询 菜单定义格式 扩展名 .pjx .dbf .prg .i ...

最新文章

  1. html5判断text文本是数字,JavaScript常用判断写法大全
  2. JavaEE目标及企业应用和互联网应用区别
  3. 2018-2019-1 20165234 《信息安全系统设计基础》第四周学习总结
  4. 物联网未来发展的十大趋势
  5. html5链接mvc,LinkExtensions.ActionLink 方法 (System.Web.Mvc.Html) | Microsoft Docs
  6. docker pull 下载一半_Docker三个重要的基本操作,镜像,容量,仓库
  7. 初识生成器与生成器表达式 Day12
  8. 举例 微积分 拉格朗日方程_《微积分教程》数学笔记目录
  9. jquery audio没有声音_Python实用案例编程入门:第十四章 通过声音控制您的计算机
  10. 【重识 HTML + CSS】CSS 选择器
  11. 系统学习NLP(二十三)--浅谈Attention机制的理解
  12. ADB工具华为鸿蒙,adb工具包华为版
  13. VRay5.0 for 3dsMax2016-2021及素材库
  14. 利用FbinstTool制作多系统(winPE+Ubuntu+CDLinux)启动U盘
  15. 华为android已锁定,教你如何查看华为手机是否己解锁bootloader
  16. 2023华为od面经~ (笔试 HR资面 技术面 一面 二面 综面)
  17. 大数据征信进入洗牌期,区块链或成新一代征信系统底层架构
  18. Pinyin4j 详解及使用
  19. 计算机网络之无线局域网
  20. linux编程 —— shell编程脚本常用语法总结 【学习笔记】

热门文章

  1. 源码 反码 补码详解(为什么计算机存储数值为补码形式?)
  2. hdu-2544(简单djikstra)
  3. android6.0源码分析之AMS服务源码分析
  4. 鸿蒙系统第二款产品,鸿蒙OS第二款产品 “华为智慧屏”在Mate 30系列发布会上亮相...
  5. android popupwindow 自定义背景,android – 无法将PopupWindow背景设置为透明
  6. python字典中append_零基础入手!Python中字典与集合的使用指南
  7. datepick二格式 化时间_考研经验分享(三)英语二作文模板
  8. 瞬时极性法对正负反馈的判断方法_直流电焊机正负极判断方法
  9. python任务栏通知区域_python+pyqt实现右下角弹出框
  10. uvalive4744(数论)