TypeScript 包含的数据类型

这篇博客介绍了TypeScript的基础知识,包括面向对象的概念——对象和类,以及方法的定义。展示了如何创建和使用类的实例。同时,详细阐述了TypeScript的数据类型,如任意类型、字符串、数字、布尔、数组、元组、枚举和void等。此外,还提到了null和undefined类型,并展示了严格模式下对它们的处理。最后,文章通过示例解释了never类型及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TypeScript 是一种面向对象的编程语言。

面向对象主要有两个概念:对象和类。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法是类的操作的实现步骤。
class Site { 
   name():void { 
      console.log("Runoob") 
   } 
} 
var obj = new Site(); 
obj.name();

定义了一个类 Site,该类有一个方法 name(),该方法在终端上输出字符串 Runoob。

new 关键字  创建类的对象,该对象调用方法 name()。

编译后生成的 JavaScript 代码如下:

var Site = /** @class */ (function () {
    function Site() {
    }
    Site.prototype.name = function () {
        console.log("Runoob");
    };
    return Site;
}());
var obj = new Site();
obj.name();

TypeScript 包含的数据类型

 

任意类型:声明为 any 的变量可以赋予任意类型的值。

let x: any = 1;    // 数字类型
x = 'I am who I am';    // 字符串类型
x = false;    // 布尔类型

let arrayList: any[] = [1, false, 'fine'];
arrayList[1] = 100;

字符串类型

let name: string = "Runoob";

let years: number = 5;

let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;

数字类型

let binaryLiteral: number = 0b1010; // 二进制

let octalLiteral: number = 0o744; // 八进制

let decLiteral: number = 6; // 十进制

let hexLiteral: number = 0xf00d; // 十六进制

布尔类型

let flag: boolean = true;

数组类型

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

或let arr: Array<number> = [1, 2];

元组:各元素的类型不必相同

let x: [string, number];

x = ['Runoob', 1]; // 运行正常

console.log(x[0]); // 输出 Runoob

枚举:数值集合

enum Color {Red, Green, Blue};

let c: Color = Color.Blue;

console.log(c); // 输出 2

const getValue = () => {
  return 0
}

enum List {
  A = getValue(),
  B = 2,  // 此处必须要初始化值,不然编译不通过
  C
}
console.log(List.A) // 0
console.log(List.B) // 2  A 的值是被计算出来的。如果某个属性的值是计算出来的,那么它后面一位的成员必须要初始化值。
console.log(List.C) // 3

enum Status {
    Yes = 'yes',    // 为string 类型时,不会自动初始化
    No = 'no'       // 必须为其初始化
}

enum Direction2 {
    Up = 1,         // 当初始化第一个常量后,其余后续的成员会从 1开始自动增长
    Down,           // 2
    Left,           // 3
    Right,          // 4
}

void:该方法没有返回值

function hello(): void {

alert("Hello Runoob");

}

null:对象值缺失。

null是一个只有一个值的特殊类型。表示一个空对象引用。

用 typeof 检测 null 返回是 object。

// 启用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 运行正确
x = undefined;    // 运行正确
x = null;    // 运行正确

undefined:初始化变量为一个未定义的值

typeof 一个没有值的变量会返回 undefined。

never:其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。

let x: never;
let y: number;

// 运行错误,数字类型不能转为 never 类型
x = 123;

// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();

// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();

// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
    throw new Error(message);
}

// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
    while (true) {}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值