TypeScript 第二节:基础类型
2023-12-13 04:02:18
TS(TypeScript)的基础类型包括:
- boolean:布尔值,包括 true 和 false。
- number:数值类型,包括整数、浮点数和 NaN。
- string:字符串类型,包括普通字符串和模板字符串。
- null 和 undefined:两个特殊的值,分别对应空和未定义。
- symbol:唯一的、不可变的值,用作对象属性的键。
- any:任意类型,允许任何类型的值。
- void:表示没有返回值的函数类型。
- never:表示永远不存在的值的类型,通常用于抛出异常或死代码路径中。
除了以上基础类型,TS 还支持其他高级类型,如元组(tuple)、枚举(enum)、联合类型(union)、交叉类型(intersection)等。
一、基础类型
1、boolean 类型
布尔类型表示 true 或 false 的值。例如:
let isDone: boolean = true;
let isLogin: boolean = false;
2、number 类型
数值类型包括整数、浮点数和 NaN。例如:
let decimal: number = 6; // 十进制
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number = 0o744; // 八进制
let notANumber: number = NaN; // 非数字
let infinity: number = Infinity; // 无穷大
3、string 类型
字符串类型包括普通字符串和模板字符串。例如:
let myName: string = 'Tom';
let sentence: string = `Hello, my name is ${myName}.`;
4、null 和 undefined 类型
null 和 undefined 是两个特别的值,分别对应空和未定义。它们属于所有类型的子类型,因此可以将它们赋值给任何类型的变量。例如:
let n: null = null;
let u: undefined = undefined;
5、symbol 类型
Symbol 表示唯一的、不可变的值,通常用作对象属性的键。例如:
let sym1 = Symbol();
let sym2 = Symbol('key'); // 可选的字符串键
6、any 类型
any 类型表示任意类型的值。如果不确定变量的类型,可以使用 any 类型。例如:
let notSure: any = 4;
notSure = 'maybe a string instead';
notSure = false;
let list: any[] = [1, true, 'free'];
list[1] = 100;
7、void 类型
void 类型表示没有返回值的函数类型。例如:
function warnUser(): void {
console.log('This is a warning message!');
}
8、never 类型
never 类型表示永远不存在的值的类型,通常用于抛出异常或死代码路径中。例如:
function error(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {}
}
二、除了基础类型,TS 还支持以下高级类型:
1、元组(tuple):表示元素数量和类型都已知的数组类型。例如:
let x: [number, string];
x = [1, 'hello'];
2、枚举(enum):表示命名的数字常量的集合。例如:
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
console.log(c); // 输出 1
3、联合类型(union):表示两个或多个类型之一的类型。例如:
let value: string | number;
value = 'hello';
value = 100;
4、交叉类型(intersection):表示多个类型的组合类型。例如:
interface A {
a: number;
}
interface B {
b: string;
}
type AB = A & B;
const ab: AB = { a: 1, b: 'hello' };
文章来源:https://blog.csdn.net/Sunshine_Jian/article/details/134927379
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!