基本类型注解
- 任意类型
let value: any = '';
- string类型
let message: string = 'hello world';
- number类型
let orderid: number = 0;
- booblean类型
let openDiolog: boolean = false;
- 字符串类型数组
let teachers: string[];
const students: string[] = ['张', '王'];
- 数字类型数组
const nums: number[] = [1, 2, 3, 4];
- 对象类型数组
const stations: object[] = [{ a: 1, b: 2 }];
- void 表示空,通常定义在没有返回值的函数上
function warnUser(): void {console.log('This is my warning message');
}
- unknown
unknown 和 any 很像。后者不被推荐在开发环境中使用的一个类型。
unknown 可以被视为一种更为安全的 any
// unsafe catch
try {maybeThrows();
} catch (e: any) {console.log(e.message);
}// safe catch
try {maybeThrows();
} catch (e: unknown) {if (e instanceof Error) {console.log(e.message);// valid}
}
- 元祖类型
const a = [1, 2, 3];
const b = [true, 'hello'];
const c = [1, true, 'world'];
- 创建元祖
let person: [string, number] = ['john', 20];
- 访问元祖
let username: string = person[0];
let userage: number = person[1];
- 修改元祖
person[0] = 'tom';
person[1] = 21;
- 元祖长度
let perLength: number = person.length;
- 解构元祖
const [pname, page] = person;
- 遍历元祖
for (let item of person) {console.log(item);
}
注意事项 在使用元组类型时,需要注意以下几点:
- 元素类型和顺序:元组中的元素类型和熟悉必须按照定义的顺序和类型添加,否则可能导致类型错误
- /数量限制:元组中的元素的数量是固定的,添加或者删除元素可能导致编译错误
- 类型一致性:元组中的元素应该具有相应的类型约束,不同类型的元素可能导致类型错误
- 解构赋值时:在解构元组时,要确保变量的数量和类型与元组中的元素匹配,否则可能导致未定义的行为