Linux服务端人脸识别:工业级门禁系统实战
2026/9/13 18:07:37
:类型明确指定变量的类型。leta:string;letb:number;letc:boolean;functiondemo(x:number,y:number):number{returnx+y;}letd=-99;// 推断为 numberd=false;// 报错string、number、boolean、null、undefined、bigint、symbol、objectvoid、never、unknown、any、enum、tupletype、interfaceleta:'你好';letgender:'男'|'女';anyleta:any;// 显式letb;// 隐式(推断为 any)unknownany,赋值给其他类型需先断言或类型判断。leta:unknown='hello';letx:string;x=aasstring;// 断言neverfunctionerror(message:string):never{thrownewError(message);}voidundefined,常用于无返回值的函数。functiondemo():void{console.log('no return');}objectletperson:{name:string;age?:number};tuple(元组)lett:[string,number];t=['hello',123];enum(枚举)enumColor{Red,Blue,Black}letc:Color=Color.Red;type定义类型别名。typeStudent={name:string;age:number;grade:1|2|3;};abstract声明,不能实例化,只能被继承。abstractclassPerson{abstractspeak():void;walk(){console.log('walking...');}}interface定义,可重复声明(合并)。implements实现接口interfacePerson{name:string;speak():void;}| 修饰符 | 说明 |
|---|---|
readonly | 只读,不可修改 |
public | 公开(默认) |
protected | 仅在类及子类中可访问 |
private | 仅在类内部可访问 |
functionidentity<T>(arg:T):T{returnarg;}functiongetLength<Textends{length:number}>(arg:T):number{returnarg.length;}本文涵盖类型系统、自定义类型、类与接口、泛型等核心概念,适用于快速复习与查阅。