TypeScript - 基本类型系统

对于程序来说我们需要基本的数据单元,如:numbers, strings, structures, boolean 等数据结构。在TypeScript中我们支持很多你所期望在JavaScript中所拥有的数据类型系统。

Boolean

在JavaScript和TypeScript中也具有最基本的逻辑断言值true/false,采用’boolean’类型。


1

var isDone: boolean = false;

Number

如JavaScript,TypeScript所有的数值类型采用浮点型计数,其类型为‘number’。


1

var height: number = 6;

String

在webpages的JavaScript或者服务端的应用程序最基本的功能就是处理文本数据。在其他语言中大多使用’string’去代表文本数据类型。TypeScript和JavaScript一样也是用双引号(“)或者单引号包裹文本数据。


1

2

var name: string = "bob";

    name = 'smith';

Array

在TypeScript中如JavaScript一样允许我们操结合操作。数组类型可以使用下边两种方式之一。

第一种方式,你可以在数据类型之后带上’[]‘:


1

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

第二种方式,也可以采用泛型的数组类型:


1

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

Enum

TypeScript为JavaScript新增了枚举这种标准的集合数据类型。和在c#中一样,枚举是为一组数值类型一组更友好的名称:


1

2

enum Color {Red, Green, Blue};

var c: Color = Color.Green;

默认枚举类型其实数值从0开始,你可以可用手动设置某一个成员的数值。例如我们可以将上文的起始值定为1:


1

2

enum Color {Red = 1, Green, Blue};

var c: Color = Color.Green;

或是手动设置全部的枚举成员:


1

2

enum Color {Red = 1, Green = 2, Blue = 4};

var c: Color = Color.Green;

枚举类型可以和容易从一个数值类型获取对应枚举名称。例如我们有一个数值类型2,但不确认将匹配哪一个枚举成员,那么我们可以如下使用:


1

2

3

4

enum Color {Red = 1, Green, Blue};

var colorName: string = Color[2];

 

alert(colorName);

Any

有时我们需要描述一些我们不知道的什么写进应用的动态数据类型,这可能来自第三方用户或者lib。在这里我们希望该数据不要加入TypeScript的类型检查,是的此值通过编译时检查。为此我们可以采用‘any’类型标注:


1

2

3

var notSure: any = 4;

notSure = "maybe a string instead";

notSure = false// okay, definitely a boolean

‘any’类型是一种强大的兼容存在的JavaScript库的类型系统。他允许跳过TypeScript的编译时类型的检查。

‘any’类型对于我们只知道部分数据类型,但是不是所有的数据类型的类型系统。如一个混合了多种类型的集合数组。


1

2

3

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

 

list[1] = 100;

Void

和‘any’相对的数据类型则是’Void‘,它代表没有任何数据类型。我们常用的一个方法没有任何返回值:


1

2

3

function warnUser(): void {

    alert("This is my warning message");

}

  

作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/ 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客博客园--破狼51CTO--破狼。http://www.cnblogs.com/whitewolf/p/4095979.html

时间: 2024-10-30 06:14:05

TypeScript - 基本类型系统的相关文章

Angular为什么选择TypeScript?

Angular是用TypeScript编写的.在这篇文章中,我将讨论为什么我们作出决定.我还将分享我使用TypeScript的经验:它如何影响我写和重构我的代码的方式. TypeScript有很好的工具 TypeScript的最大的卖点就是工具.它提供高级自动完成,导航和重构.拥有这样的工具几乎是大型项目的必备要求.没有他们,改变代码的恐惧使代码库处于半只读状态,并使大规模重构非常危险且昂贵. TypeScript不是编译为JavaScript的唯一类型语言.还有其他语言具有更强的类型系统,在理

类型系统-前端进化的里程碑

大半夜的JavaScript Weekly发来贺电:TypeScript 2.0 Final Released! 没错,继Angular2发布之后,TypeScript今天也发布了2.0版本,这不禁让我浮想一番.如果要说TS和JS最明显的差别,我想一定是Type System,所以今天我们就聊聊类型系统在前端发展历程中,到底扮演了怎样的角色. 历史斗争 如果要你把PV上百万级别的Web Application用一门在10天内撸出来的编程语言来开发,我想你肯定不会放心的.然而事实上我们现在都是这样

类型系统-前端发展的里程碑

继Angular2发布之后,TypeScript近日也发布了2.0版本,这不禁让我浮想一番.如果要说TS和JS最明显的差别,一定是Type System了,所以今天我们就聊聊类型系统在前端发展历程中,到底扮演了怎样的角色. 历史斗争 如果要你把PV上百万级别的Web Application用一门在10天内撸出来的编程语言来开发,我想你肯定不会放心的.然而事实上我们现在都是这样干的,JS已经成为了最流行的编程语言.JS现在所承担的使命已经完全超出了当年设计的初衷,虽然TC39一直在填坑,并且发展到

详解在ASP.NET Core中使用Angular2以及与Angular2的Token base身份认证_实用技巧

Angular2是对Angular1的一次彻底的,破坏性的更新. 相对于Angular1.x,借用某果的广告语,唯一的不同,就是处处都不同. •首先,推荐的语言已经不再是Javascript,取而代之的TypeScript,(TypeScript = ES6 + 类型系统 + 类型注解), TypeScriipt的类型系统对于开发复杂的单页Web app大有帮助,同时编译成javascript后的执行效率也比大多数手写javascript要快.有兴趣的同学可以查阅官方文档:英文传送门 |中文传送

阿里开源了14个核心技术,你了解哪些?

在开源中国举行的"2017年度最受欢迎中国开源软件Top20"的评选中,阿里巴巴占据五席位. 其实,阿里巴巴并没有开源项目的KPI考核,各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题.这正是社区一致的开源精神,大家都可以站在巨人的肩膀上,每个人都可以既是老师又是学生,这或许可以解释为什么IT技术的发展能如此充满活力. 本文总结整理了2017年阿里巴巴九个重要的新开源项目和在开源中国评选中五个备受欢迎的项目,希望能对大家有所帮助. 构

TypeScript 强类型 JavaScript – Rafy Web 框架选型

今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法.   理想的 JavaScript 开发模式 其实早在 TypeScript 发布早期的时候,我就已经开始关注这个语言.因为在2012年初时,我需要为 Rafy/OEA 平台选型编写 Web 端自动界面生成框架:Rafy.js.而这个客户端框架需要基于一些流行的 JS 库来进行开发,当时选型的重点就是选择哪一个基础框架. 当时,我期望能找到

产品前端重构(TypeScript、MVC框架设计)

最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的,后端是基于 Asp.net MVC 提供的 REST 数据接口.同时,希望通过这次重构,不但能将其本身重构至可用于快速二次开发的产品,同时还要求该前端代码要保证相对的独立,使得同时可以接入 .NET 和 JAVA 两个不同的后端平台所提供的数据接口.   旧代码的问题 老系统的前端代码如下图所示:

TypeScript快餐教程 (1) - 初识

TypeScript快餐教程 (1) - 初识 JavaScript,更广泛点也许可以说是ECMA Script的各种实现,从诞生到现在,一直就没断过争议.ECMA Script 4的夭折正是这些争论严重程度的重要体现. Anyway,不断争议如何,JavaScript的地位一直不曾被撼动.针对JavaScript存在的问题,可编译成JavaScript的语言一直就前仆后继. 这其中,DART,CoffeeScript和TypeScript是其中最有名的三个. DART由Google推出,设计者

(转载)JavaScript大师Nicholas C. Zakas谈TypeScript

在Web领域,几乎每周都会出现新的语言来试图取代JavaScript,比如谷歌推出的Dart就是想解决所有JavaScript不能修复的根本性问题:后来CoffeeScript的出现更煽动了这场取代JavaScript的战争.现在,微软也加入了,这不禁让我想知道为什么? [CSDN.NET 张红月/编译] 前段时间,微软发布了TypeScript语言,这个项目主要的负责人是 Anders Hejlsberg (C#.TurboPascal 之父).TypeScript提供了类.模块和接口来帮助您