美文网首页
typeScript学习01

typeScript学习01

作者: 404_accc | 来源:发表于2019-10-14 11:40 被阅读0次

布尔类型

布尔值是最基础的数据类型,在 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;
  }
}

相关文章

  • typeScript学习01

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

  • Typescript

    TypeScript(TS)部分 TypeScript学习笔记

  • 2019年诱人的 TypeScript 视频教程

    ​ typescript 01 intro.mp4 typescript 02 why.mp4 typescrip...

  • typescript学习

    typescript学习

  • TypeScript入门教程(一)

    学习网址:文档简介 · TypeScript中文网 一、Typescript介绍 1. TypeScript 是由...

  • 01_TypeScript学习(一)

    一.Ts最终是会编译成JS代码的,所以我们需要搭建对应的环境: 二.使用TypeScript定义一个字符串类型: ...

  • typescript

    title: typescript学习tags: typescript学习 [toc] 泛型 基本使用 两种使用方...

  • TypeScript 基础

    以下为学习极客时间 《TypeScript 开发实战》的学习记录。 TypeScript 环境配置 安装 ts: ...

  • Typescript 学习笔记六:接口

    目录: Typescript 学习笔记一:介绍、安装、编译 Typescript 学习笔记二:数据类型 Types...

  • TypeScriptz学习笔记

    TypeScriptz学习笔记 标签(空格分隔): TypeScript 撩课学院 安装TypeScript Ty...

网友评论

      本文标题:typeScript学习01

      本文链接:https://www.haomeiwen.com/subject/rhxrmctx.html