TypeScript学习2、TS数据类型

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;
arr2 = [1,2,0];

联合类型数组

let arr3: (string | number)[] or let arr3: Array;
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 = [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、类型断言:将一个联合类型的变量指定为一个更加具体的类型,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学习2、TS数据类型)