博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ts的学习历程 -- 01
阅读量:6292 次
发布时间:2019-06-22

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

ts是什么?

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。

TypeScript 由微软开发的自由和开源的编程语言。

TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

语言特性

ts是一种给js添加特性的扩展性语言,扩展功能如下:

  • 基础类型
  • 接口
  • 函数
  • 泛型
  • 类型兼容性
  • 高级类型
  • 模块
  • 命名空间
  • 混入

基础类型

js是弱语言类型,而ts类似c++这种强语言,可以对变量进行处理,规定变量的类型,让程序变得可维护性强,有价值。

布尔值

我们可以在ts中进行如下声明:

let isDone: boolean = false复制代码

数字

和js一样,ts中的数字都是浮点数,类型为number.

let num: number = 6复制代码

字符串

let str: string = "26"复制代码

数组

有两种可以定义数组的方式

let list: number[] = [1, 2, 3]   // 表示由此类型元素组成的一个数组复制代码

let list: Array
= [1, 2, 3] // 使用数组泛型Array
<元素类型>
复制代码

元组 Tuple

元组类型表示允许一个已知元素数量和类型的数组,各元素的类型不必相同

let x: [string, number];x = ['hello', 10];复制代码

枚举 enum

类型是对JavaScript标准数据类型的一个补充

enum Color {Red, Green, Blue}let c: Color = Color.Green;复制代码

默认情况下,从0开始为元素编号。你也可以手动的指定成员的数值

enum Color {Red = 1, Green, Blue}let c: Color = Color.Green;复制代码

或者,全部都采用手动赋值:

enum Color {Red = 1, Green = 2, Blue = 4}let c: Color = Color.Green;复制代码

枚举类型提供的一个便利是你可以由枚举的值得到它的名字

enum Color {Red = 1, Green, Blue}let colorName: string = Color[2]; // Green复制代码

任意值 any

有的时候我们或许还不知到该变量到底该赋什么类型的值,比如对象

let notSure: any = 4;复制代码

当你只知道一部分数据的类型时,any类型也是有用的。 比如,你有一个数组,它包含了不同的类型的数据:

let list: any[] = [1, true, "free"];list[1] = 100;复制代码

空值 void

你可以理解为和any相反的类型,他表示没有任何类型

function warnUser(): void {    alert("This is my warning message");}复制代码

在声明变量的时候,你只能赋予它undefined和null

let unusable: void = undefined;            ||或let unusable: void = null;复制代码

Null 和 Undefined

undefined和null两者各自有自己的类型分别叫做undefined和null。 和void相似

let u: undefined = undefined;let n: null = null;复制代码

Never

never类型表示的是那些永不存在的值的类型。

返回never的函数必须存在无法达到的终点

function infiniteLoop(): never {    while (true) {        }}复制代码

类型断言

有的时候会或许更了解你的一些变量【两种写法】

尖括号

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;复制代码

转载于:https://juejin.im/post/5cd2b5dff265da036b4a7cf7

你可能感兴趣的文章
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>