上一篇:
1. object:对象
// let job: object;
// job = { address: '郑州市', salary: '10k' }; //success
// job = {}; //success
// job = function () { }; //success
// 上述代码和js中的声明对象的方式没有什么不同,既然使用了ts,那就用处不在这里
let job: { name: string, salary: number }
job = { name: 'ios', salary: 11 }; //success
// job = {}; //error
// job = { salary: '10k' }; //error
// 比如这个时候,我们只想设置一个name,salary不想设置,这个时候是报错的,修改如下
// job = { name: 'ios' }; //error
let job1: { name: string, salary?: number } //属性 ? : type 表示此属性可有可无
job1 = { name: 'android' }; //success
// 比如要求 name属性,salary属性这两个属性必须要有,其他的属性随便添加修改
// job = { name: 'ios', salary: 11, company: '阿里巴巴' }; //error,多设置了属性名,此属性名并未在job中声明
// [propName: string]: type; type:any:表示任意类型的属性; type:string:表示属性的值只能为string 同理···
let job2: { name: string, salary: number, [propName: string]: any }
job2 = { name: 'ios', salary: 11, company: '阿里巴巴', boss: '马云' }; //success
2. any:任意类型
// 不太建议在ts中使用(既然都用ts,类型都为any,那还为什么使用ts?)
// 如果不指定类型为any 比如let a; a='123';a=999; ts的编译器会自动认为此类型为any(隐形any)
let a: any;
// a = 'xiaomi'; //success
// a = 999; //success
// a = true; //success
a = ['123']; //success
// .........
3. unknown:类型安全的any,unknown的变量不能直接赋值给其他变量
let b: unknown;
let bb: string;
// b = 123; //success
// bb = b; //error
// b = 'xiaomi';
// bb = b; //error
// 如何成功
/* 类型断言:用来告诉解析器变量的实际类型
语法:
变量 as 类型
*/
b = 'xiaomi';
bb = b as string; //success
if (typeof b === 'string') bb = b //success
/* any类型,不报错,怎么设置都可以,可以赋值给任意变量,可见any真的不到万不得已不能使用 */
let c: any;
c = 999;
bb = c; //success
c = ['123'];
bb = c; //success
4. void:用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void {
// return '123'; //error
// return 'xiaomi'; //error
return; //success
// return undefined; //success
// return null; //success
//或者不写return
}
let data: void;
// data = '123'; //error
// data = [123]; //error
// data = undefined; //success
// data = null; //success
5. never:从不会出现的值,没有值,不能是任何值,永远不会有返回结果(返回“从不”的函数不能具有可访问的终结点)
let good: never;
// good = '123'; //error
// good = undefined; //error
// good = null; //error
function goodFun(): never {
// return '123'; //error
// return; //error
// return undefined; //error
// return null; //error
// console.log('123'); //error
throw new Error('error'); //success
}
6. enum:枚举,枚举类型用于定义数值集合。
enum Gender {
woman,
man,
//woman = 0,
//man=1
}
let person: { name: string, gender: Gender };
person = {
name: '科比',
gender: Gender.man
}
if (person.gender === Gender.man) console.log('男');
if (person.gender === Gender.woman) console.log('女')
下一篇:
TypeScript补充(& ,type)https://blog.csdn.net/qq_42543244/article/details/122778263