原文出处:

http://www.typescriptlang.org/Handbook

基于对web开发的需要和对安神的崇拜,打算学习一下typescript。

能力有限,基本属于在自己认识的基础上进行的翻译,错误难免,主要是通过翻译来学习。

基本类型
在编程中我们需要用到的一些简单的数据元素,比如:数值,字符串,结构体,布尔型,等等。
如你所愿,在javascript里面的那些数据类型,TypeScript都支持,
with a convenient enumeration type thrown in to help things along.(这句暂时没理解好)

布尔型(Boolean)
最基本的数据类型是简单的真或假,在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];

第二种,使用通用的数组类型,Array<元素类型>:

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

注:我个人喜欢第二种。

枚举(Enum)
'enum'是对javascript中标准的集合类型的有用扩展。像其他语言,比如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";
notSure = false; // okay, definitely a boolean

any类型在现有的javascript中是一个强大有力的方法,允许您在编译过程中逐步选择和退出类型检查。

注:在我看来是兼容javascript的弱类型。
any类型在你可能只是知道该类型的某一部分内容时,很有用。例如,你可能定义一个数组,但是这个数组混合了不同的类型:

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

list[1] = 100;

注:类似Delphi的variant,或者TValue。

无类型(Void)
也许有时候,any类型并不能准确表示'无',即没有任何类型的类型,不能用某种类型类表示。
您通常可以将此视为不返回值的返回类型的函数:

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

TypeScript Handbook 1——基本类型(翻译)的更多相关文章

  1. typescript handbook 学习笔记4

    概述 这是我学习typescript的笔记.写这个笔记的原因主要有2个,一个是熟悉相关的写法:另一个是理清其中一些晦涩的东西.供以后开发时参考,相信对其他人也有用. 学习typescript建议直接看 ...

  2. typescript handbook 学习笔记3

    概述 这是我学习typescript的笔记.写这个笔记的原因主要有2个,一个是熟悉相关的写法:另一个是理清其中一些晦涩的东西.供以后开发时参考,相信对其他人也有用. 学习typescript建议直接看 ...

  3. typescript handbook 学习笔记2

    概述 这是我学习typescript的笔记.写这个笔记的原因主要有2个,一个是熟悉相关的写法:另一个是理清其中一些晦涩的东西.供以后开发时参考,相信对其他人也有用. 学习typescript建议直接看 ...

  4. 【TypeScript】TypeScript 学习 1——基本类型

    TypeScript 是 JavaScript 的超集,TypeScript 经过编译之后都会生成 JavaScript 代码.TypeScript 最大的特点就是类型化,因此才叫做 TypeScri ...

  5. TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型

    2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...

  6. TypeScript完全解读(26课时)_12.TypeScript完全解读-高级类型(1)

    12.TypeScript完全解读-高级类型(1) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建新的测试文件 ind ...

  7. TypeScript完全解读(26课时)_13.TypeScript完全解读-高级类型(2)

    13.TypeScript完全解读-高级类型(2) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建文件并在index. ...

  8. TypeScript Handbook 2——接口1(翻译)

    接口(Interfaces) One of TypeScript's core principles is that type-checking focuses on the 'shape' that ...

  9. TypeScript中的枚举类型

    TypeScript拓展了Javascript原生的标准数据类型集,增加了枚举类型(enmu)和其他语言一 样 它提供我们一种数字类型的值,用来设置由于辨别的名字和方法 enum Students { ...

随机推荐

  1. 慕课网__css_padding && z_index

    一个正方形 对于“内联元素”来说 z-index 静态布局没有z-index作用

  2. ssm+redis 如何更简洁的利用自定义注解+AOP实现redis缓存

    基于 ssm + maven + redis 使用自定义注解 利用aop基于AspectJ方式 实现redis缓存 如何能更简洁的利用aop实现redis缓存,话不多说,上demo 需求: 数据查询时 ...

  3. 腾讯云TCCE培训认证 精彩的第一次

    版权声明:本文由阁主的小跟班  原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/922888001482910380 来源: ...

  4. iOS —— 字典遍历排序

    字典NSDictionary一般的遍历方法都是: NSArray* arr = [yourdictonary allKeys]; for(NSString* str in arr) { NSLog(& ...

  5. Centos下Yum安装PHP5.5,5.6,7.0

    默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 ...

  6. Linux下配置IP及安装vmware tool

    =======================CentOS 7以下======================= 配置IP: 1.获得mac地址 2.编辑ifcfg-eth0文件:vi /etc/sy ...

  7. Jquery动态操作checkbox

    问题的由来:html页面中使用checkbox给新建用户授权,然后提交到后台服务器,完成给用户授权.用户授权完成之后,如果用户的权限发生改变管理员需要修改多个用户的权限或查看某用户的权限,点击不同的用 ...

  8. Windows Store App JavaScript 开发:小球运动示例

    通过前面内容的学习,相信读者已经对开发基于JavaScript的Windows应用商店应用有了一定的了解,本小节通过一个小球运动的示例来介绍如何新建一个JavaScript的Windows应用商店项目 ...

  9. 用Object字面量来代替swtich/if...else

    很多时候,if...else...有很多判断分支选项,就会见到: if (animal === 'dog') { // TO DO 'dog' } else if (animal === 'cat') ...

  10. Msbuild项目集成右键菜单编译

    DS1.背景:   我们为什么要将VS2008命令行编译.sln文件集成到右键菜单呢? 原因一:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此. 原因二:有 ...