TypeScript Basic Types(基本类型)
在学习TypeScript之前,我们需要先知道怎么才能让TypeScript写的东西正确的运行起来。有两种方式:使用Visual studio 和使用 NodeJs。
这里我选择的是NodeJs来编译TypeScript,因为我笔记本上的VS是2012的,在TypeScript的官网看到下载是TypeScript for VS2013和TypeScript for VS2015。额,顺带贴上TypeScript的官网,有需要的去下载。
然后使用NodeJs编译TypeScript的方法:
// 安装
install : npm install -g typescript
// 编译
compile : tsc your.ts
使用VS的限于VS版本2013及2015的,可以下载相关组件,然后新建"TypeScriptFile"。在.ts文件下会有个.js文件,.js就是自动编译后的文件了,然后html引用.js文件即可。
为了让程序可运行,我们需要使用一些数据的基本类型:numbers, strings, structures, boolean等。TypeScript支持这些在JavaScript中会用到的数据类型,并且还提供了实用的枚举类型。
Boolean(布尔类型)
最基本的数据类型是简单的true/false,在JavaScript和TypeScript(其他语言也一样)中称为"boolean"类型。
var isDone:boolean = false;
Number(数字)
正如在JavaScript中,在TypeScript中的数值也都是浮点数。这些浮点数都是"number"类型的。
var height: number = 6;
String(字符串)
在JavaScript编写网页或者服务端程序中,另外一个重要的部分便是文本类型数据。和其他语言一样,我们使用字符串(string)来指代这些文本类型的数据。和JavaScript相同,TypeScript也是用双引号("")或者单引号('')来包含字符串数据。
var name: string = "bob";
name = 'smith';
Array(数组)
TypeScript和JavaScript一样,允许使用数组来含括一系列的值。有两种不同的方式来写一个数组。第一种是在元素类型后面用中括号([])来表示这种类型元素的数组:
var list:number[] = [1,2,3,4];
第二种是使用泛型创建类型数组,Array<elemType/ *数组元素的类型* />:
var list:Array<number> = [1, 2, 3];
Enum(枚举)
在JavaScript原生的标准数据集之外,TypeScript增加了一个很实用的"enum"类型。比如C#,枚举给了我们更友好的名称(数字类型)来辨别数值集合。
enum Color {Red, Green, Blue};
var c: Color = Color.Green;
默认情况下,枚举中的元素是从0开始编号的。你可以通过手动设置元素的这个值。比如,我们现在设置从1开始,而非原先例子中的0:
enum Color {Red = 1, Green, Blue};
var c: Color = Color.Green;
或者,即使是手动设置所有枚举元素的数值都是可以的:
enum Color {Red = 1, Green = 2, Blue = 4};
var c: Color = Color.Green;
枚举类型有个便捷的特性,你可以通过数值来查找枚举中的对应的元素名称。我们看例子,假如我们有一个数值是2,但我们不知道在上面的枚举中对应的是哪个元素,那么我们可以查找相对应的名称:
enum Color {Red = 1, Green, Blue};
var colorName: string = Color[2];
alert(colorName);
Any
当我们编写应用程序的时候,我们可能需要描述一些不明确类型的变量。这些变量可能来自动态的内容,比如用户提供或者第三方库。在这些情况下,我们想要跳出类型检查并且让这些值通过编译时的检查。为了实现这个目的,我们使用"Any"类型来标识这些值:
var notSure: any = 4;
notSure = "maybe a string instead"; // 现在是string类型
notSure = false; // 现在是boolean类型
"any"类型对于处理我们现有的JavaScript代码很有好用,可以用它来控制编译时是否增加还是减少数据的类型检查。
如果你仅知道一部分数据类型而非全部数据类型,那么使用"any"类型是很方便的。例如,你可能有个数组,但这个数组的元素又是对应不同的数据类型。
var list:any[] = [1, true, "free"];
list[1] = 100;
Void
与"any"类型相对的是"void"类型,它代表没有任何类型。你也许经常看到它作为个不返回值的函数:
function warnUser(): void {
alert("This is my warning message");
}
TypeScript Basic Types(基本类型)的更多相关文章
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- QML学习【一】Basic Types
QML入门教程(1) QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制.它结合了QtDesi ...
- A Tour of Go Basic types
Go's basic types are bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr ...
- 编译器重复定义错误:error C2371: 'SIZE' : redefinition; different basic types
我们常常会定义自己工程用的数据类型,可能会与Windows的基本数据类型冲突. vs会报重复定义错误:error C2371: 'SIZE' : redefinition; different bas ...
- 【TypeScript】TypeScript 学习 1——基本类型
TypeScript 是 JavaScript 的超集,TypeScript 经过编译之后都会生成 JavaScript 代码.TypeScript 最大的特点就是类型化,因此才叫做 TypeScri ...
- Unity Lighting - Light Types 灯光类型(八)
Light Types 灯光类型 We have now covered some of the project settings which need to be considered befo ...
- [C++] Variables and Basic Types
Getting Started compile C++ program source $ g++ -o prog grog1.cc run C++ program $ ./prog The libra ...
- TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型
2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...
- TypeScript完全解读(26课时)_12.TypeScript完全解读-高级类型(1)
12.TypeScript完全解读-高级类型(1) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建新的测试文件 ind ...
随机推荐
- <实训|第七天>横扫Linux磁盘分区、软件安装障碍附制作软件仓库
期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...
- 写一个 nodejs npm应用 - webhere
前言.没图不说话,先上图. What's webhere? 有没有遇到这样的场景:写程序的时候,需要访问一个文件,这个文件 需要是放到一台web服务器上,但是你不是开发的web应用. 所以呢,你不得不 ...
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
- Redis的五种数据结构
Redis支持持久化只是它的一件武器,它提供了多达5种数据存储方式: 一 string(字符串) string是最简单的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个val ...
- 隐马尔可夫模型(Hidden Markov Model,HMM)
介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...
- matlab中的xcorr 自相关函数
转载自 http://blog.163.com/to_be_myself/blog/static/176060227201101762159227/ Matlab中用于计算自相关函数的指令是xcorr ...
- Quartz.NET 入门
概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了 ...
- 【JavaEE企业应用实战学习记录】requestListener
package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebListener; import ...
- 转 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...
- vmware 虚拟机克隆之后配IP重启网络失败
在日常实验中,我新安装了一个虚拟机(全新的)node1,然后为了实验,又克隆了一天虚拟机node2 然后我给两台机器设置IP和主机名node1 : 192.168.220.128 node2 : 1 ...