TypeScript系列文章
可浏览博客主页的TypeScript专栏,会陆续添加相关文章,有问题或者可以优化的地方也希望大大门告知
共同进步 :)
文章目录
TypeScript 数据类型
版本 Version 4.8.4
TypeScript 数据类型:为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体,布尔值等。 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。
1 布尔型-boolean
var isDone: boolean = false;
2 数值-number
// 10进制
let decLiteral: number = 6;
// 16进制
let hexLiteral: number = 0xf00d;
// 2进制
let binaryLiteral: number = 0b1010;
// 8进制
let octalLiteral: number = 0o744;
3 字符串-string
let name: string = "bob";
4 数组(可限制类型)
// 数组泛型
let list: Array<any> = [1, true, "free"];
// 元素类型后面接上 []
let list2: any[] = [1, true, "free"];
5 元组
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
// Declare a tuple type
let x: [string, number];
// Initialize it
x = ["hello", 10]; // OK
// x = [10, 'hello']; // Error
// 当访问一个越界的元素,vscode编辑器会提示错误 例如:console.log(x[5]);
6 枚举
// 编号默认从0开始
// 也可以手动赋值
// 如果当前枚举值没有赋值,上一个必须为数值类型,当前枚举值会自动+1
enum Color {
Red = 2,
Green = 1,
Blue, // 根据上一个枚举值自动加1
Yellow="111", // 可以赋值为字符串
Black="5" //必须赋值,不然会报错
}
let c: Color = Color.Blue;
console.log("Color.Red:",Color.Red);
console.log("Color.Green:",Color.Green);
console.log("Color.Blue:",Color.Blue);
console.log("Color.Yellow:",Color.Yellow);
console.log("Color.Black:",Color.Black);
7 any和unknown
// any 跟 unknown 都表示任何类型,可以相互赋值~
// 有些教程说不可以,这个也要看TS版本
// any 表示任何,对于那些不确定类型的值可以用,对现有代码进行改进也可以用,但是避免使用,不然还不如用JS写
var a: any = "hello";
var b: unknown = 123;
b = a;
a = b;
8 void,undefined和null
// 通常用于函数,表明不需要返回值,对于变量没有什么作用
let unusable: void = undefined;
// unusable=null; // Error
// undefined和null两者各自有自己的类型分别叫做undefined和null
// Not much else we can assign to these variables!
let u: undefined = undefined;
let n: null = null;
9 never
never类型表示的是那些永不存在的值的类型。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {}
}
// never 是任何类型的子类型,也就是说 never 可以赋值给任何类型。
const aa: number = "string" as never;
const bb: object = "" as never;
// console.log('const aa: number = "111" as never:', aa); // Success
TypeScript 类型断言
通过类型断言这种方式可以告诉编译器,“相信我,我知道自己在干什么”。
注意:类型断言只能够「欺骗」TypeScript 编译器,无法避免运行时的错误,反而滥用类型断言可能会导致运行时错误
// “尖括号”语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
// as 语法
let someValue2: any = "this is a string";
let strLength2: number = (someValue as string).length;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66365.html