typescript之静态成员

前面我们说到的是成员属性和方法都是实例对象的,但有的时候,我们需要给类本身添加成员,区分某成员是静态还是实力的:

  • 该成员属性或方法是类型的特征还是实例化的特征
  • 如果一个成员方法中没有使用或者依赖this,那么该方法就是静态的
type AllowFileTypesList = 'jpg' | 'png' | 'gif' | 'jepg' | 'webp';
class User1 {
    //static 必须写在readobly前面
    static readonly ALLOW_FILE_TYPES_LIST : Array<AllowFileTypesList> = ['jpg','png','gif','jepg','webp'];
    constructor(
        name: string,
        id: number,
        private _allowFileTypes: Array<AllowFileTypesList>
    ) {
        
    }
    //如果类的方法中没有用到this关键字,那么可以把方法定义为静态方法
    static info():void{
        // 类的静态成员都是用过 类名.静态成员 来访问
        console.log(User1.ALLOW_FILE_TYPES_LIST)
    }
    get allowFileType():string[]{
        return this._allowFileTypes
    }

}
let u = new User1('thia',1,['jpg','png']);
console.log(u.allowFileType);
//静态方法通过 类名.方法名 调用
User1.info()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。