TypeScript 基础数据类型

2020-06-10  本文已影响0人  张思学

TS是JS的超集,JS是一门动态弱类型语言。与之对应的自然有静态类型语言和强类型语言。
在学习一门语言之前是值得花时间去区分类型之间的区别。

强类型语言

在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用函数中声明的类型兼容。

弱类型语言

变量可以被赋予不同的数据类型。

静态类型语言

静态类型语言对类型极度严格,所以代码可读性好,能自文档化,编译时就能立即发现错误并提示,所以运行的时候性能比较好。

动态类型语言

动态类型语言对类型要求极度宽松,从而也会出现代码可读性较差,也有可能出现一些隐藏的Bug
在JS中,数据类型是存在隐式转换的。以下面的简单代码为例

let name = '小明同学';
name = true
console.log(name) // true

TS 的基础数据类型介绍

Number(数值型)

可以是整型、浮点型、还有各种进制型等等

String(字符串)

可以用单引号、双引号、反引号括着

boolean(布尔型)

只能有 true 和 false

array(数组类型)

[1, 2, 3, 4, 5]

tuple(元组类型)

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

enum(枚举类型)

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

void (void类型)

ts中void表示没有任何类型,一般用于定义方法的时候方法没有返回值

never(never类型)

是其他类型(包括 null 和undefined )的子类型,代表从来不会出现的值,这意味着never的变量只能被never类型赋值,比如 var a : undefined ; a就只能被赋值undefined

any(任意类型)

任意类型不建议使用,就和js一样了

Ts标准写法

在变量名后,会有一个类型注解。这个类型注解相当于强类型语言中的类型声明,能起到一定的约束作用。

let num: number = 20; // 数值型

let str: string = 'hello ts'; // 字符串

let t: boolean = true;  // 布尔型

let array: number[] = [1, 2, 3, 4, 5, 6] // 数组类型
let array:Array<string> = ['a', 'b', 'c'] // 数组类型
let array: (string | number)[1,2,'0']; // 数组类型

let tuple: [string, number, boolean]; // 元组类型
tuple = ['1', 2, true];

// 枚举类型
enum CarStatus{
    ON_lINE,
    OUT_LINE = 2,
    WARNING
}
console.log(CarStatus)

// 不能有返回值 return
const playFunc = (srt: string): void => {
    console.log(srt);
}

let anything: any; // 任意类型
上一篇下一篇

猜你喜欢

热点阅读