博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TypeScript学习笔记(二):基本数据类型及数据转换
阅读量:7083 次
发布时间:2019-06-28

本文共 2576 字,大约阅读时间需要 8 分钟。

数据类型

我们来看看TypeScript中的基本数据类型都有哪些。

boolean

布尔值,支持true和false。

var isDone: boolean = false;

默认为undefined,此时其和true与false判断都为false。

1 var isDone: boolean;2 3 function run() {4     alert(isDone == true);//false5     alert(isDone == false);//false6 }7 8 run();

所以在使用boolean类型时要记得赋初值,以便避免以后的麻烦。

number

数字类型,如下:

var height: number = 6;

首先,TypeScript中对于数字只有这么一种类型,没有byte、short、int、uint、long、float、double等类型,而TypeScript的number实际上是一个64为的双精度浮点数,可以看做其它语言中的double类型。

需要注意的是,当不进行初始赋值时,所有的基本数据类型都默认为undefined类型,下面不再重复讲解。

string

字符串类型,如下:

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

字符串的使用与JavaScript一致。

any

表示为任意类型,如下:

var notSure: any = 4;notSure = "maybe a string instead";notSure = false;

我们发现notSure可以设定为任意的类型。

我们也可以将其用在数组上,如下:

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

undefined和null

null和undefined基本是同义的,只有一些细微的差别。

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。

null表示"没有对象",即该处不应该有值。

参考:

void

用在函数返回值,和C++、Java用法一致,表示没有返回值:

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

Array

数组类型,可以有两种写法,如下:

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

二维数组

var num: string[][] = [["asdf", "zxc"],["adsf"]];

其它使用方法和JavaScript中一致。

Object

可以当做Hash表来使用,如下:

1 var obj: Object = {}; 2  3 function run() { 4     obj["a"] = 123; 5     //obj.b = "asdf";//这种写法是错误的 6     obj["b"] = "asdf"; 7     obj[100] = true; 8  9     delete obj["100"];//删除使用 delete 关键字10 11     for (var key in obj) {12         alert(key);13         alert(obj[key]);14     }15 }16 17 run();

需要注意的是,该类型的键都是字符串类型,即所有当做键的对象都会调用toString()方法获得对应的字符串来作为键值保存对象。

Enum

枚举类型,如下:

enum Color {Red, Green, Blue};var c: Color = Color.Green;

另一种格式:

enum Color {Red, Green, Blue};var c: Color = Color[1];

同时还可以对每个枚举进行赋值,如下:

enum Color {Red = 1, Green, Blue};var c: Color = Color.Green;

这样,Green自动被赋值为2,Blue自动被赋值为3。

也可以全部进行赋值:

enum Color {Red = 1, Green = 2, Blue = 4};var c: Color = Color.Green;

我们还可以获得指定索引的枚举的名称:

enum Color {Red = 1, Green, Blue};var colorName: string = Color[2];alert(colorName);

需要注意的是,这里的值可以看做数组的下标,如下:

enum Color {Red = 100, Green, Blue};var colorName: string = Color[101];alert(colorName);//Green

数据转换

强制转换

将一个类型强制转换为另一个类型,如果转换失败编译时会报错,如下:

var str: string = 
num;//转换成功var strNum: number =
str;//编译报错

TypeScript中没有as关键字进行转换,都是强制转换。

instanceof

instanceof可以用来判断一个对象是否为指定的类型,如果是则返回true,否则返回false,如下:

if (obj instanceof String) {    alert("obj is string!");}

typeof

可以获取类型的字符串描述:

1 typeof 3 // "number"2 typeof "abc" // "string"3 typeof {} // "object"4 typeof true // "boolean"5 typeof undefined // "undefined"6 typeof function(){} // "function"

可参考:

转载地址:http://ldlml.baihongyu.com/

你可能感兴趣的文章
SpringBoot+Vue.js前后端分离实现大文件分块上传
查看>>
Node.js环境性能监控
查看>>
CSS在没有设置高度的情况下如何让同级元素高度相等?
查看>>
1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
查看>>
spring微服务架构设计与轻量级微服务架构及最佳部署
查看>>
Android多线程之Handler、Looper与MessageQueue源码解析
查看>>
Java操作Excel文件
查看>>
十分钟了解HTTPS
查看>>
如何培养良好的编程实践
查看>>
SAP HANA Hint简介
查看>>
前端教程之插件和类库封装
查看>>
《Android艺术开发探索》学习笔记之View的工作原理
查看>>
[译] Story 中 Type Mode 在 iOS 和 Android 上的实现
查看>>
全球银行网站成黑客主攻目标 阿里云提供安全防御应急方案
查看>>
Flutter完整项目-笑话Flutter(原创)
查看>>
数据结构与算法-表达式二叉树
查看>>
JavaSE基础:字符串
查看>>
iOS开发 __func__的使用
查看>>
iOS开发 使用fui(Find Unused Imports)扫描工程中不用的类
查看>>
Android组件化专题-路由动态注入跳转参数以及获取其他模块的fragment
查看>>