基本类型

像基本的JavaScript一样,TypeScript支持numbers, strings, structures, boolean等基本类型,而扩展的enum等类型,为编程提供了更多帮助。

Boolean

这是最简单的类型

 
var isDone: boolean = false;

Number

在JavaScript中,所有数字都是浮点类型,TypeScript中也一样。

var height: number = 6;

String

文本型数据也是一种常见类型,其常量用双引号(")或单引号(')引起来。

var name: string = "bob";
name = 'smith'; 

Array

数组类型可以用两种方式表达。 第一种, 在使用的类型元素之后加上[] 来表示一个Array元素的类型:

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

第二种方法使用一个通用的Array类型,Array< elemType >:

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

Enum枚举

像语言c#,enum是一种更友好的名字给的数值。

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

表示一种未知或可变的类型:

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

Any为TypeScript提供了和JavaScript进行数据交互的强大能力。

Any类型让一个数组中可以混合多种数据:

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

list[1] = 100;

Void

有时一个函数没有返回值,用void来表示:

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


接口

接口为编程带来了非常多的好处,很多语言和设计模式中,接口都是一个重要角色。

我们的第一个Interface

一个简单的例子:

function printLabel(labelledObj: {label: string}) {
console.log(labelledObj.label);
} var myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

类型检查器检查调用“printLabel”。 printLabel的函数只有一个参数,要求传入的对象有一个属性被称为“标签”类型的String。 请注意,我们的对象实际上有更多的属性 比这个,但是编译器只检查参数规定的label属性。

我们可以写同样的例子,这一次使用一个接口来描述需求的“标签”的属性是一个String:

interface LabelledValue {
label: string;
} function printLabel(labelledObj: LabelledValue) {
console.log(labelledObj.label);
} var myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

这种实现方式功能和上例相同,只是有了更明确的接口。

可选属性

有时接口中的属性并不是必须的,可选属性可以满足这种需求。

这是这种模式的例子:

interface SquareConfig {
color?: string;
width?: number;
} function createSquare(config: SquareConfig): {color: string; area: number} {
var newSquare = {color: "white", area: 100};
if (config.color) {
newSquare.color = config.color;
}
if (config.width) {
newSquare.area = config.width * config.width;
}
return newSquare;
} var mySquare = createSquare({color: "black"});

带"?"的属性就是可选属性。

可选属性的优点是可以对匹配的属性进行类型检查,同时又保持了高度灵活性:

interface SquareConfig {
color?: string;
width?: number;
} function createSquare(config: SquareConfig): {color: string; area: number} {
var newSquare = {color: "white", area: 100};
if (config.color) {
newSquare.color = config.collor; // 这里编译器会进行类型检查
}
if (config.width) {
newSquare.area = config.width * config.width;
}
return newSquare;
} var mySquare = createSquare({color: "black"});

函数型接口

接口能够描述各种各样的,JavaScript对象。 除了描述一个对象的属性外,Interface也能够描述函数类型。

函数型接口规定了函数的参数和返回值。

interface SearchFunc {
(source: string, subString: string): boolean;
}

下面是应用这个函数型接口的例子。

var mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
var result = source.search(subString);
if (result == -1) {
return false;
}
else {
return true;
}
}

函数型接口只检查参数类型,不检查参数名称。 例如我们可以把上面的例子写成这样:

var mySearch: SearchFunc;
mySearch = function(src: string, sub: string) {
var result = src.search(sub);
if (result == -1) {
return false;
}
else {
return true;
}
}

TypeScript手册1 - 基本类型和接口的更多相关文章

  1. TypeScript:基本类型和接口

    返回TypeScript手册总目录 基本类型(Basic Types) 为了让程序可以使用,我们需要用到一些最简单的数据单元:数字,字符串,结构,布尔值,诸如此类.在TypeScript中,支持许多正 ...

  2. Java Native Interface 二 JNI中对Java基本类型和引用类型的处理

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 Java编程里会使用到两种类型:基本类型(如 ...

  3. [TODO]The way to Go(9): 基本类型和运算符

    参考: Github: Go Github: The way to Go 基本类型和运算符 表达式是一种特定的类型的值,它可以由其它的值以及运算符组合而成. 每个类型都定义了可以和自己结合的运算符集合 ...

  4. Java中的基本类型和包装类型区别

    首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...

  5. Java 基础 - 基本类型和引用类型

    ref: https://www.cnblogs.com/ysocean/p/8482979.html#_label2 ------------------ 这里再给大家普及一个概念,在 Java 中 ...

  6. 【Java心得总结一】Java基本类型和包装类型解析

    说到数据类型这个问题是一个基本的不能再基本的问题,我们当初编程入门第一课一般就是讲数据类型,而今天我想记录的是一个在Java中容易忽略的问题,即基本类型和包装类型. 一.基本类型出现的原因 我们都知道 ...

  7. Java基础——基本类型和包装类、基本类型和字符串之间的转换

    基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...

  8. 基本类型和引用类型调用是的区别(Object.create)

    var person = { name : 'jim', address:{ province:'浙', city:'A' } } var newPerson = Object.create(pers ...

  9. Scala编程--基本类型和操作

    如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方 ...

随机推荐

  1. POJ 1815 Friendship(最小割)

    http://poj.org/problem? id=1815 Friendship Time Limit: 2000MS   Memory Limit: 20000K Total Submissio ...

  2. poj 1548(最小路径覆盖)

    题目链接:http://poj.org/problem?id=1548 思路:最小路径覆盖是很容易想到的(本题就是求最小的路径条数覆盖所有的点),关键是如何建图,其实也不难想到,对于当前点,如果后面的 ...

  3. Jquery添加元素append及阻止表单提交submit

    HTML代码: <td><input name="duration[]" value="" type="text" /&g ...

  4. python中os模块函数方法详解最全最新

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) os.chdir("dirname") 改 ...

  5. 查看hive的配置信息

    在启动hive时设置配置属性信息 $ bin/hive --hiveconf <property=value> 查看当前所有的配置信息 hive > set ; hive (db_h ...

  6. nodejs koa2 获取get值和post值,提交表单

    // 获取get值 router.get('/b', async(ctx, next) => { ctx.state = { title: 'Koa2', name: '小明-list' } l ...

  7. ios 避免两个button同一时候被点击

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/superchaoxian/article/details/24631293 这个能够通过[btn   ...

  8. 0405-服务注册与发现-客户端负载均衡-Ribbon 同Eureka使用,Ribbon脱离Eureka使用

    一.Ribbon 同Eureka使用,注意事项 前几节一同使用,注意事项: 如果没有其他区域数据源,则根据客户端配置进行猜测(与实例配置相反).能够获取eureka.client.availabili ...

  9. ABAP自动生成程序

    QID            用表 APQD 里的ID REPORT    Z001 去年6月花了一周的成果,可是玩了一周就没玩了, 现在想来: 研究下程序共性 ,这个总结的多,一定会提高效率 这个用 ...

  10. Kafka的架构

    1.Kafka整体架构    一个典型的Kafka集群中包含若干producer(可以是web前端产生的page view,或者是服务器日志,系统CPU.memory等),若干broker(Kafka ...