TypeScript手册翻译系列1-基础类型-程序员宅基地

技术标签: c#  ViewUI  javascript  

基础类型(Basic Types)  

我们提供一些基础类型,比如数字(numbers)、字符串(strings)、结构(structures),布尔值(Boolean)等等。在TypeScript中,我们支持JavaScript中相同的类型,还提供枚举类型。

Boolean

最基础的数据类型是true/false值,JavaScript和TypeScript以及其他语言把它叫做'boolean'类型。

var isDone: boolean = false;

Number

JavaScript一样,在TypeScript中的所有数字都是浮点数。这些浮点数使用'number'类型。

var height: number = 6;

String

JavaScript用来构建web页面和服务端程序的另一个基础部分是处理文本数据(textual data)。与其他语言一样,我们使用'string'来指这些文本数据类型。如同在JavaScript中一样,TypeScript也使用双引号(")或单引号(')来包裹这些字符串数据。  

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

Array

TypeScript与JavaScript一样,允许你使用数组。数组类型可以用2种方式书写。第一种方式,你可以在元素类型后面跟一个'[]'来表示该元素类型的数组:

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


第二种方式是使用数组泛型,Array<elemType>:

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

Enum

JavaScript标准数据类型集合外,增加了"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"映射到Color枚举的哪一个,可以根据下面代码找到对应的名称:  

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协作的途径,允许你逐步选择参与和不参与编译时的类型检测。如果你知道类型的某些部分,但不知道类型的其他部分,那么'any'类型是十分方便的。例如有个数组用了不同的数据类型

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

list[1] = 100;

Void

在某些情况下,‘any’类型的反面可能就是'void'类型,它表示非任何类型。可以把它看成一个无返回值函数的返回类型:

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

参考资料

[1] http://www.typescriptlang.org/Handbook#basic-types

转载于:https://my.oschina.net/1pei/blog/493181

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34246551/article/details/91497531

智能推荐

C++报错不允许使用不完整的类型-程序员宅基地

文章浏览阅读8k次,点赞3次,收藏5次。#include "pch.h"#include &lt;iostream&gt;#include &lt;fstream&gt;//报错是因为没有添加相应的头文件的原因using namespace std;int main(){ ofstream outfile;//这里报错“不允许使用不完整的类型”} ..._不允许使用不完整的类型

图像分析之直方图分析_图像强度特征直方图-程序员宅基地

文章浏览阅读3.6w次,点赞11次,收藏19次。图像分析之强度直方图分析直方图介绍强度直方图图形化显示不同的像素值在不同的强度值上的出现频率,对于灰度图像来说强度范围为[0~255]之间,对于RGB的彩色图像可以独立显示三种颜色的强度直方图。强度直方图是用来寻找灰度图像二值化阈值常用而且是有效的手段之一,如果一幅灰度图像的直方图显示为两个波峰,则二值化阈值应该是这两个波峰之间的某个灰度值。同时强度直方图是调整图像对比度的_图像强度特征直方图

video.js多个视频初次加载报错The element or ID supplied is not valid_the element or id supplied is not valid. (videojs)-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏4次。多个视频总是报这个错误,后来多次尝试加了定时器才可以了 let id = "my-video" + i.toString(); this.plays.push( videojs(id)); setTimeout(function() { let myPlayer = videojs(id); videojs(id).ready(function() { let myPla_the element or id supplied is not valid. (videojs)

linux go redis,go-redis 连接池-程序员宅基地

文章浏览阅读321次。// 定义redis链接池var client *redis.Client// 初始化redis链接池func init() {db, err := beego.AppConfig.Int("redisDB")if err != nil {logs.Error("redis-db", err)}client = redis.NewClient(&redis.Options{Addr: ..._linux redis连接池

GDAL+Python实现栅格影像处理之栅格矢量化及矢量栅格化_python 图像矢量化-程序员宅基地

文章浏览阅读8.6k次,点赞9次,收藏47次。GDAL+Python实现栅格影像处理之栅格矢量化及矢量栅格化相关概念使用方法效果展示相关概念栅格矢量化:将栅格数据生成矢量数据。矢量栅格化:将矢量数据生成栅格数据。使用方法栅格矢量化使用gdal.Polygonize()方法参数说明(未列完)参数说明srcBand输入数据波段maskBand设置掩码波段(只对掩码区域进行处理)outLaye..._python 图像矢量化

vue导出word文档docxtemplater,包括图片输出和角度筛选器_docxtemplater 图片-程序员宅基地

文章浏览阅读6.9k次,点赞2次,收藏14次。vue导出word文档docxtemplater,包括图片输出和角度筛选器首先需要引入一些包参考地址文档中这样写主要代码首先需要引入一些包import docxtemplater from ‘docxtemplater’ //word文档生成import JSZipUtils from ‘jszip-utils’import PizZip from ‘pizzip’import {saveAs} from ‘file-saver’ //输出文件流import ImageModule fr_docxtemplater 图片

随便推点

View桌面agent显示不可用或错误状态_view agent报告此桌面源当前被禁用-程序员宅基地

文章浏览阅读2.7k次。问题概述原因当View连接服务器(cs)无法在VMware View虚拟机上的View Agent建立通信时,就会出现Agent Unreachable状态。另,View桌面在自定义过程中以及在可用并准备使用之前会暂时显示错误状态。当创建配置有Sysprep定制规范的桌面池并且虚拟机模板或父虚拟机包含CustomizationInProgress注册表项时,可能会发生此问题。如果虚拟机以前是由vCenter Server自定义,则此注册表项可以存在,不会影响。通常,在桌面虚拟机上运行的View A_view agent报告此桌面源当前被禁用

NLP学习(五)jieba分词-Python3实现_jieba nlp 同义词-程序员宅基地

文章浏览阅读836次。中文分词对于NLP(自然语言处理)来说,分词是一步重要的工作,市面上也有各种分词库,11款开放中文分词系统比较。1.基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法)2.基于统计:基于词频度统计的分词方法;3.基于规则:基于知识理解的分词方法。第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。第二类基于统计的分词方法_jieba nlp 同义词

深度学习AI美颜系列----人像静态/动态贴纸特效算法实现_人脸贴片算法-程序员宅基地

文章浏览阅读1w次,点赞15次,收藏70次。人像静态/动态贴纸特效几乎已经是所有图像视频处理类/直播类app的必需品了,这个功能看起来复杂,实际上很简单,本文将给大家做个详细的讲解。我们先来看一下FaceU的两张效果图: 这两张效果图中, 我们可以看到一些可爱的圣诞帽贴纸和小鹿形象贴纸,在人脸区域,自动贴上不同的贴纸,便会生成很多有趣的特效,这也是大家爱不释手的原因。 我们从静态贴纸讲起,动态..._人脸贴片算法

ffmpeg制作视频播放器(十二)QT下显示yuv图像_qt显示yuv图像-程序员宅基地

文章浏览阅读355次。完成对yuv文件使用OpenGLShader播放_qt显示yuv图像

开始面向Spring编程,一个Spring的面试题就能扯一天, 怕了,怕了-程序员宅基地

文章浏览阅读996次。前言:最近总在CSDN上闲逛,看到好多面试题根本就是面向Spring编程面试嘛…Spring的成功也给开发人员带来了不小的挑战,无论在架构选型,还是在日常开发中。唯有系统性地掌握Spring Framework思想、设计,以及实现,可游刃有余,以免进退失据今天扯一扯Spring到底有哪些高频面试题使用 Spring 框架能带来哪些好处?低侵入式设计,代码污染极低独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺Spring的D_面向spring编程

虚拟机windows2003DHCP服务器配置后如何验证?_虚拟机配置dhcp怎么验证结果-程序员宅基地

文章浏览阅读3.5k次。一,前言既然你搜到了这里,说明你的DHCP服务器已经配置完毕。如果还没配置请百度下.只说关键点,不会的操作可以百度。二,准备工作1,禁用其他网卡,仅留下VMware network adapter 8 (VMware network adapter 1 禁用与否不影响)若不禁用网络,可能会从网上的DHCP服务器获得动态ip地址。 2,关闭虚拟机Windows server2003(或者其他版本_虚拟机配置dhcp怎么验证结果

推荐文章

热门文章

相关标签