Appearance
TypeScript笔记1-基础类型
date: 2021-11-15 16:46:12 tags: javascript
- 布尔值
let isDone: boolean = false;- 数字
let decLiteral: number = 6;- 字符串
let name: string = "bob";- 数组
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];- 元组 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
let x: [string, number];
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error当访问一个越界的元素,会使用联合类型替代:
- 枚举 enum
enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green;- Any 任意类型
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;- 没有任何类型 Void 一个函数没有返回值时,你通常会见到其返回值类型是 void
也可以给赋予undefined和null
function warnUser(): void {
console.log("This is my warning message");
}
let unusable: void = undefined;- Null 和 Undefined undefined和null两者各自有自己的类型分别叫做undefined和null
let u: undefined = undefined;
let n: null = null;- Never 那些永不存在的值的类型
never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。
never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}- Object
object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。
使用object类型,就可以更好的表示像Object.create这样的API。例如:
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error- 类型断言 类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构
类型断言有两种形式。 其一是“尖括号”语法:
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;另一个为as语法:JSX时,只有 as语法断言是被允许的。
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;