原文出处:

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. windows下如何安装和启动MySQL

    1.下载,解压到自己喜欢的目录 2.配置环境变量.MYSQL_HOME,值为mysql的根目录:在path中添加%MYSQL_HOME%/bin目录. 3.向windows注册mysql服务.必须用管 ...

  2. 【积累】validate验证框架的使用

    validate验证框架的使用:用验证框架可以很方便的验证前端页面输入的内容可以自定义验证方法 内容:0:环境搭建 1:基础用法 2:自定义用法 0:基本环境的搭建 0.1:下载js文件 0.2:引入 ...

  3. weex 小结--内建模块

    使用以下模块时,需要导入依赖:var *** = require('@weex-module/****'); 1. navigator --像浏览器一样切换页面 2. webview(module) ...

  4. mysql复制一列到另一列

    mysql复制一列到另一列   UPDATE 表名 SET B列名=A列名 需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: 复制代码代码如下: UPDATE file_man ...

  5. openssl evp RSA 加密解密

    openssl evp RSA 加密解密 可以直接使用RSA.h 提供的接口 如下测试使用EVP提供的RSA接口 1. EVP提供的RSA 加密解密 主要接口: int EVP_PKEY_encryp ...

  6. Java类中中文问题

    一个奇怪问题 java类中要保存一个xml文件到数据库,2种传值方式其中1种不知何故会最终导致解析xml时报错. xml文件内容由StringBuffer定义,其中一段内容如下: sb.append( ...

  7. 联想键盘 去掉fn

    这个帖子 很实用 http://iknow.lenovo.com/detail/dc_039949.html 键盘驱动下载地址:http://support1.lenovo.com.cn/lenovo ...

  8. console

    你所不知道的 Console 2016-12-19 ZHANGXIANGLIANG JavaScript 转自 https://segmentfault.com/a/119000000672160 1 ...

  9. display:inline、block、inline-block的区别

    display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度不设是它的容器的100%,除非设定一个宽度 <div& ...

  10. AX2012 XppCompiler create method动态创建方法并运行

    在用友系列的软件中经常可以看到可配置的计算公式,AX中其实也有可配置的公式,如call center呼叫中心的欺诈Fraud rule的配置,AX后台可以根据配置规则,变量,条件来动态产生方法并执行, ...