美文网首页
TypeScript学习2、TS数据类型

TypeScript学习2、TS数据类型

作者: 喜欢骑着蜗牛散步 | 来源:发表于2019-10-16 17:21 被阅读0次

1、布尔类型。

let bool: boolean;
bool = false;

2、数值类型(包括浮点型, 二进制 八进制 十六进制数值))。

let num: number = 1.2;
let num1: number = NaN;
let num2: number = Infinity;
let num3: number = 1111101000; // 二进制
let num4: number = 3e8; // 16进制

3、字符串类型。

let str: string;
str = '123456789';
str = `数值是${num}`;

4、数组类型。
写法一

let arr: number[];
arr = [1,2,0];

写法二

let arr2: Array<number>;
arr2 = [1,2,0];

联合类型数组

let arr3: (string | number)[] or let arr3: Array<string | number>;
arr3 = [1,2,'0'];

5、元组类型:和数组类似,但是元组中的数据类型顺序、长度必须和规定的类型顺序、长度对应起来。

let tuple: [string, number, boolean];
tuple = ['1', 2, true];

6、枚举类型:一个枚举可以包含零个或多个枚举成员,枚举成员具有一个数字值,它可以是常数或计算得出的值,如果没有初始化就会被当作常数,这是第一项为0,其余为前一项加一。

enum CarStatus{
    ON_lINE,
    OUT_LINE = 2,
    WARNING
}
console.log(CarStatus.WARNING)

7、any类型:任意类型。

let cy: any;
cy = false;
cy = 'dsadsa';
cy = [1,2,2,'fdfsd']
let arr4 : Array<any> = [1,2,'ddd']
let arr5 : any[] = [1,2,'ddd']

8、void类型:什么类型都不是,可以赋值undefined 和 null。

const playFun = (str: string): void =>{
    console.log(str)
}
playFun("1")
let v: void = undefined;
let v1: void = null; // 在关闭严格模式下才启作用否则报错

9、null和undefined:在关闭严格模式下null和undefined类型是其他类型的子类型。

let n1: null;
n1 = null;
let n2: undefined;
n2 = undefined;

10、never类型:表示永远不存在的值,never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。

一、抛出异常的情况是never类型。

function error(message: string): never {
    throw new Error(message);
}

二、无线循环也是never类型。

function loop(): never {
    while (true) {}
}

11、object对象。

let obj = {
    name: 'dddd'
}
let obj2 = obj;
obj2.name = 'aaaa';
console.log(obj)
function getObj(obj: object): void{
    console.log(obj)
}
getObj(obj)

12、类型断言:将一个联合类型的变量指定为一个更加具体的类型,<string>str 或者 str as string 在JSX语法中只能使用(str as string)这种方式。
下面看一个例子...

const getLength = (str: string | number): number => {
    if (str.length || str.length === 0) {
        return str.length
    } else {
        return str.toString().length
    }
}
//ERROR in basic-type.ts(90,20)TS2339: Property 'length' does not exist on type 'string | number'.Property 'length' does not exist on type 'number'.

上例中,获取 str.length 的时候会报错。此时可以使用类型断言,将 str断言成 string:

const getLength1 = (str: string | number): number => {
    if ((str as string).length || (str as string).length === 0) {
        return (str as string).length
    } else {
        return str.toString().length
    }
}
console.log(getLength1('hello')) //5

相关文章

  • Typescript

    TypeScript(TS)部分 TypeScript学习笔记

  • TypeScript学习2、TS数据类型

    1、布尔类型。 2、数值类型(包括浮点型, 二进制 八进制 十六进制数值))。 3、字符串类型。 4、数组类型。写...

  • 数据类型

    typescript 命令 ​ tsc --init 生成配置文件 ts的基础数据类型 特殊数据类型 数组 ...

  • 【TS】基础数据类型

    在了解TypeScript(简称TS)基础数据类型之前,先聊聊类型的“强弱动静”之分。 TS是JS的超集,JS是一...

  • TypeScript 基础

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

  • 《菜鸟教程》-TypeScript 基础类型

    TypeScript 包含的数据类型如下表: 由图表可以看出,TS的数据类型与JS有所不同, 其中any, voi...

  • 《TypeScript》 - 基础类型

    TypeScript 包含的数据类型如下表: 由图表可以看出,TS的数据类型与JS有所不同, 其中any, voi...

  • TypeSrcipt一起学习(二)

    之前我们学习了TypeScript的数据类型,我们来看看TS中是如何声明函数的 我们先看看js中的函数声明 fun...

  • ts数据类型

    TypeScript 不是「强类型」,是「静态类型检查」的「弱类型」。ts的数据类型: 布尔类型 boolean数...

  • typescript 学习笔记

    typescript 编译命令 tsc app.ts 基本数据类型 函数类型 Lambads和this关键字的使用...

网友评论

      本文标题:TypeScript学习2、TS数据类型

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