typescript学习(一)

原创 2018年04月17日 15:49:45

基础类型

1、布尔值

let isDone: boolean = false;

2、数字

和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number

let decLiteral: number = 6;十进制

let hexLiteral: number = 0xf00d;十六进制

let binaryLiteral: number = 0b1010;2进制

let octalLiteral: number = 0o744;8进制

3、字符串

let name: string = "bob";name = "smith";

模版字符串,它可以定义多行文本和内嵌表达式。 这种字符串是被反引号包围( `)(可以实现输入分行),并且以${ expr }这种形式嵌入表达式。

let name: string = `Gene`;let age: number = 37;let sentence: string = `Hello, my name is ${ name }.I'll be ${ age + 1 } years old next month.`;

4、数组

有两种方式可以定义数组。 第一种,可以在元素类型后面接上[];第二种方式是使用数组泛型,Array<元素类型>

let list: number[] = [1, 2, 3];

let list: Array<number> = [1, 2, 3];

5、元组 Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为stringnumber类型的元组。

// Declare a tuple typelet x: [string, number];// Initialize itx = ['hello', 10]; // OK// Initialize it incorrectlyx = [10, 'hello']; // Erro

6、枚举

enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字

enum Color {Red, Green, Blue}let c: Color = Color.Green;

默认情况下,从0开始为元素编号。 你也可以手动的指定成员的数值。 例如,我们将上面的例子改成从 1开始编号:

enum Color {Red = 1, Green, Blue}let c: Color = Color.Green;

7、Any

有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用 any类型来标记这些变量:

let notSure: any = 4;notSure = "maybe a string instead";notSure = false; // okay, definitely a boolean

在对现有代码进行改写的时候,any类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。 你可能认为 Object有相似的作用,就像它在其它语言中那样。 但是 Object类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法:

let notSure: any = 4;notSure.ifItExists(); // okay, ifItExists might exist at runtimenotSure.toFixed(); // okay, toFixed exists (but the compiler doesn't check)let prettySure: Object = 4;prettySure.toFixed(); // Error: Property 'toFixed' doesn't exist on type 'Object'.

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

let list: any[] = [1, true, "free"];list[1] = 100;

8、Void

某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void

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

声明一个void类型的变量没有什么大用,因为你只能为它赋予undefinednull

// Not much else we can assign to these variables!

let u: undefined = undefined;

9、Null 和 Undefined

默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

然而,当你指定了--strictNullChecks标记,nullundefined只能赋值给void和它们各自。

10、类型断言

 其一是“尖括号”语法,另一个为as语法。

11、let

11、1 let与var的区别

在TypeScript中,定义变量要用关键字var或者let。let是一种新的var,let和var的区别就是let使js实现了它的块级作用域,即词法作用域或块作用域(注:let可以看成var,它定义的变量被限制在特定范围中才能使用,离开这个范围就自动销毁)。

我们使用let关键字来代替大家所熟悉的JavaScript关键字var

let声明,必须为构造函数、方法、访问器或属性。

11、2 JavaScript的严格模式

除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。
进入"严格模式"的标志,是下面这行语句:
  "use strict";
老版本的浏览器会把它当作一行普通字符串,加以忽略。

11、3 var作用域

 这是因为var声明可以在包含它的函数,模块,命名空间或全局作用域内部任何位置被访问,包含它的代码块对此没有什么影响。 有些人称此为var作用域或函数作用域。 函数参数也使用函数作用域。

这些作用域规则可能会引发一些错误。 其中之一就是,多次声明同一个变量并不会报错:

参考网站点击打开链接

点击打开链接




版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35795952/article/details/79974528

为什么要学习TypeScript

前言如今,要是你作为一个前端开发人员连JavaScript都不知道,那可真是太out了。学习使用JavaScript很有必要.随着Node.js的流行,JavaScript已经随处可见。但同时,你也一...
  • yongf2014
  • yongf2014
  • 2015-09-18 18:12:58
  • 1755

typescript学习视频

自己做的一个typescript的学习视频,希望大家多多拍砖 同时在不断的更新中 优酷 typescript学习视频 QQ群: 547086266...
  • u013782762
  • u013782762
  • 2016-07-09 15:09:28
  • 733

TypeScript 学习笔记0: 迈着坚定的步伐,出发!

手头上的产品使用ObjC开发的,几年中做了n次升级,内心万分纠结,如此陈旧的技术,迟早会被淘汰,虽然暂时够用,但也太不思进取了。而且,一直在酝酿Android版,为了降低维护成本,做一个跨平台版本是必...
  • wershest
  • wershest
  • 2017-07-01 13:52:59
  • 296

TypeScript学习总结

这里是用了一天学习的typescript笔记,希望对大家有帮助 http://www.edrawsoft.cn/viewer/public/s/a7e03850164853...
  • Dan_2017
  • Dan_2017
  • 2017-12-20 13:45:50
  • 110

最全TypeScript中文入门指南详解案例教程

  • 2015年08月09日 21:54
  • 666KB
  • 下载

初入typescript的一些阶段性总结

类、接口的写法跟java一样,继承、实现的写法都是用extends 跟implements关键字。 成员声明方式 —> 成员名字:成员类型 可选成员的声明方式—> 成员名字?:成员类型 静态成...
  • u012138137
  • u012138137
  • 2017-02-15 15:26:22
  • 400

用typescript写react和node是怎样的一种体验

还不知道typescript是啥的前端童鞋需要做下功课了。 接触typescript挺早的。13年底的时候,公司的牛人在团队内推广typescript,没多久我们就把typescript做的项目...
  • hsany330
  • hsany330
  • 2016-11-09 10:38:04
  • 535

TypeScript学习起步

在学习TypeScript之前,首先要了解TypeScript与JavaScript的不同。 TypeScript是微软公司于2012年发布(用以替代JavaScript)的一门语言,提供了类、模块和...
  • xiaozhi_2016
  • xiaozhi_2016
  • 2017-03-21 17:08:53
  • 507

TypeScript学习笔记(完成)

前言 TypeScript是JavaScript的超集,它的作者是著名的C#之父(名字我忘了)。作为后者的超集,Typescript(以下简称为tsc)拓展了JS,真正的将js从玩具语言变成一种工程...
  • qq_20264891
  • qq_20264891
  • 2018-02-14 13:26:07
  • 95

Typescript变量声明

一、、变量声明 let和const是一个新的变量声明方式,const可以阻止对一个变量再次赋值。 二、var声明 一直以来,我们都是通过var关键字定义一个变量。 var a = 10...
  • qq_30970807
  • qq_30970807
  • 2016-09-16 15:04:19
  • 664
收藏助手
不良信息举报
您举报文章:typescript学习(一)
举报原因:
原因补充:

(最多只允许输入30个字)