// 布尔类型
let boo: boolean = true;
// 数值型
let num: number = 123;
// 字符串
let str: string = 'abs';
// 数组
let arr: Array<number> = [1, 2, 4];
let arr1: Array<string> = ['a', 'v'];
let arr2: string[] = ['a', 'b'];
// undefined, null
let und: undefined = undefined;
let nul: null = null;
// ts中的或
let some_var: number | string | undefined | boolean = 123;
some_var = 'a';
some_var = undefined;
some_var = true;
// any 不进行类型校验
let any_var: any = 123;
any_var = true;
// void 函数中没有返回值时用void
function func(arg: number): void { // arg: number规定参数类型
}
func(111)
function fun2(arg: string): boolean {
// 返回布尔值
return false // 不是void的话必须有返回值
}
fun2('a')
// 对象,使用接口来定义对象的类型 规范化接口名用大写的I开头
// interface 接口
interface IPerson {
name: string;
age: number;
sex: string;
}
let obj: IPerson = { // 所有的类型和参数名必须与接口保持一致,多参数少参数都不行
name: '张三',
age: 20,
sex: '男'
}
// 可选性
interface IPerson2 {
name?: string; // 加问号是指可选,有没有该属性都可以
age: number;
sex: string;
}
let obj2: IPerson2 = {
age: 20,
sex: '女'
}
// 接口继承 extends 属性= 自己的 + 继承的
interface IA extends IPerson {
hobby: Array<string>;
}
let iaobj: IA = {
name: 'hh',
age: 20,
sex: '男',
hobby: ['aa', 'bb']
}
// 继承多个接口
interface IB {
name: string
}
interface IC {
age: number
}
interface ID extends IB, IC {
sex: string
}
let idobj: ID = {
name: '还好',
age: 20,
sex: '男'
}
// ts中的与 与继承类似
let person: IB & IC = {
name: '还好',
age: 20
}
// 不确定属性
interface IPerson3 {
[propName: string]: any; // 键为字符串, 键值为任意值
}
let person3: IPerson3 = {
name: 'hh',
age: 20,
b: true
}
// implements 接口实现
interface IPerson4 {
name: string;
age: number;
getName: () => string; // string 为返回值类型
getAge(): number;
}
class Person implements IPerson4 {
name: string = '张三';
age: number = 20;
getName(): string {
return this.name
};
getAge(): number {
return this.age
}
// 类自己的方法
sayHello(): void { }
}
// 类型断言
function getLength(str: number | string): number {
// if ((str as string).length) {
if ((<string>str).length) {
return (str as string).length
} else {
return str.toString().length
}
}
// 非空断言
function fun3(arg?: string): number {
return arg!.length
// 相当于 return arg && arg.length
}
fun3()
// 枚举 取索引值,默认从0开始
enum Color {
red,
green,
yellow
}
Color.red // 0
Color.green // 1
// 反向映射
Color[0] // red
// 给枚举赋值
enum Color1 {
red = 1,
green,
yellow
}
Color1[1] // red
Color1.red // 1
Color1.green // 2
enum Color2 {
red = 1,
green = 'abc', // 如果赋值非数字,无法自增,则后面的必须赋值
yellow = 'bb'
}
// 泛型
function fun4<T>(arg: T):void {
}
fun4<number>(2) // 根据调用接口的设置类型传值
TypeScript基础篇--类型介绍
最新推荐文章于 2024-08-27 16:58:03 发布