typeScript学习01

布尔类型

布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型:

const bool1: boolean = false 
const bool2: boolean = 'fasle'   //编译器报错,不能将类型“"dsdsd"”分配给类型“boolean”。
const bool3: boolean = new Boolean(1)  // 不能将类型“Boolean”分配给类型“boolean”。 “boolean”是基元,但“Boolean”是包装器对象。如可能首选使用“boolean”。
const bool4: boolean = Boolean(0)
console.log(bool4)   // false
const bool5: boolean = Boolean(1)
console.log(bool5)   // false

数值类型

使用 number 定义数值类型:

let num: number = 1212
num = 0b101110  // 二进制
num = 0o172     // 八进制
num = 0x7b      // 十六进制    

字符串类型

使用 string 定义字符串类型:

let str1: string = 'jsbin'
let str2: string = `使用es6的字符串模板也可以${num}`

数组类型

定义数组有两种写法

let arr1: number[] = [1,2,3,4]         // 写法1
let arr2: Array<number> = [1,2]        // 写法2
let arr3: (string | number)[] = [1]    // 联合类型,既可以是数字类型,也可以有字符串类型
let arr4: Array<number | string> = [1, '2']

元组类型

长度固定,对应数据的数据类型要一致

const tuple1: [string, boolean, number] = ['jsbin', true, 0]
const tuple2: [string, number] = ['jsbin', '12121']  // 不能将类型“string”分配给类型“number”。
const tuple3: [string, number] = ['jsbin', 121, 1212] // 不能将类型“[string, number, number]”分配给类型“[string, number]”。属性“length”的类型不兼容。

枚举类型

enum Rolse {
  SUPER_ADMIN = 905,
  ADMIN,
  USER
}

// 编译成js之后
var Rolse;
  (function (Rolse) {
    Rolse[Rolse["SUPER_ADMINS"] = 905] = "SUPER_ADMINS";
    Rolse[Rolse["ADMINS"] = 906] = "ADMINS";
    Rolse[Rolse["USERS"] = 907] = "USERS";
  })(Rolse || (Rolse = {}));
 
 console.log(Rolse.USER)  // 907

any

// any类型(任何类型)
let any: any
any = 0
any = false
any = '1212'

空值void

avaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数:

function alertName(): void {
    console.log(JsBin');
}

声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null:

const unusable: void = undefined;

null和undefined

在 TypeScript 中,可以使用 null 和 undefined 来定义这两个原始数据类型:
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量:

let u: undefined = undefined
let n: null = null

// 这样不会报错
let num: number = undefined;

// 这样也不会报错
let u: undefined;
let num: number = u;

// Type 'void' is not assignable to type 'number'.
let u: void;
let num: number = u;

never

// never  (别得类型都不能)
const errorFn = (message: string) : never => {
  throw new Error('dsd')
}

object

使用object定义对象类型

// object
let obj: object = {
  name: 'jsbin'
}

类型断言

类型断言(Type Assertion)可以用来手动指定一个值的类型。两种写法1.<类型>值; 2.值 as 类型

// 类型断言        
function getLength(something: string | number): number {
  if ((<string>something).length) {
      return ((something as string).length);
  } else {
      return something.toString().length;
  }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • 一、什么是 TypeScript? 百度解释:TypeScript是一种由微软开发的自由和开源的编程语言。它是Ja...
    wave浪儿阅读 2,205评论 1 20
  • 简介 TypeScript 是 JavaScript 的一个超集,主要提供了 类型系统 和对 ES6 的支持,由 ...
    MrWelson阅读 15,886评论 3 21
  • 关于TypeScript TypeScript是JavaScript的超集,主要提供类型系统和对ES6的支持,由M...
    kim_jin阅读 737评论 0 1
  • 前言 现在TypeScript越来越火,咱也赶一下潮流,开始学习一下TypeScript,在学习的同时做笔记记录,...
    郝晨光阅读 1,456评论 0 7
  • typescript现在已经慢慢变成前端工程师必学必会的技能了,它在开发大型应用的时候可以让产品更加可控,本篇就试...
    大喵爱读书阅读 4,295评论 0 5