当前位置: 首页 > wzjs >正文

国务院政府网站发展建设seo免费资源大全

国务院政府网站发展建设,seo免费资源大全,企业网站建设费怎么入账,网站怎么做网络推广在 TypeScript 中,类(Class) 是面向对象编程的核心结构,用于封装数据和行为。TypeScript 的类继承了 JavaScript 的类特性,并增加了类型系统和高级功能的支持(如访问修饰符、存取器和装饰器)。 …

在 TypeScript 中,类(Class) 是面向对象编程的核心结构,用于封装数据和行为。TypeScript 的类继承了 JavaScript 的类特性,并增加了类型系统和高级功能的支持(如访问修饰符、存取器和装饰器)。


1. 属性

(1) 定义
  • 属性是类中存储数据的变量。
  • 可以使用类型注解为属性指定类型。
(2) 示例
class User {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}
}const user = new User("Alice", 30);
console.log(user.name); // 输出 "Alice"

在这里:

  • nameage 是类的属性,分别表示用户的姓名和年龄。

2. 构造函数

(1) 定义
  • 构造函数是一个特殊的方法,用于初始化类的实例。
  • 使用 constructor 关键字定义。
(2) 简化语法
  • TypeScript 支持直接在构造函数参数中声明并初始化属性。
示例
class User {constructor(public name: string, public age: number) {}
}const user = new User("Alice", 30);
console.log(user.name, user.age); // 输出 "Alice 30"

在这里:

  • public 修饰符自动将构造函数参数声明为类的属性。

3. 方法

(1) 定义
  • 方法是类中定义的函数,用于实现特定的行为。
  • 方法可以通过 this 访问类的属性和其他方法。
示例
class User {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet(): void {console.log(`Hello, my name is ${this.name}. I am ${this.age} years old.`);}
}const user = new User("Alice", 30);
user.greet(); // 输出 "Hello, my name is Alice. I am 30 years old."

在这里:

  • greet 是一个方法,用于打印用户信息。

4. 存取器(Accessors)

(1) 定义
  • 存取器是一种特殊的属性,允许通过 getset 方法控制对某个属性的访问和修改。
  • 存取器提供了封装和验证的能力。
示例
class User {private _age: number;constructor(age: number) {this._age = age;}// Getterget age(): number {return this._age;}// Setterset age(value: number) {if (value < 0) {throw new Error("Age cannot be negative");}this._age = value;}
}const user = new User(30);
console.log(user.age); // 输出 30user.age = 25; // 设置新的值
console.log(user.age); // 输出 25// user.age = -5; // 报错:Age cannot be negative

在这里:

  • _age 是私有属性,外部无法直接访问。
  • get age()set age(value) 提供了对 _age 的安全访问和修改。

5. 访问修饰符

(1) 定义
  • 访问修饰符用于控制类成员的可见性。
  • TypeScript 提供了三种访问修饰符:publicprivateprotected
(2) 常见修饰符
  • public:默认修饰符,成员可以在任何地方访问。
  • private:成员只能在类内部访问。
  • protected:成员可以在类内部和子类中访问。
示例
class User {public name: string; // 公有属性private _age: number; // 私有属性protected role: string; // 受保护属性constructor(name: string, age: number, role: string) {this.name = name;this._age = age;this.role = role;}public getAge(): number {return this._age;}protected getRole(): string {return this.role;}
}class Admin extends User {override getRole(): string {return `Admin: ${super.getRole()}`;}
}const admin = new Admin("Alice", 30, "Super Admin");
console.log(admin.name); // 输出 "Alice"
console.log(admin.getAge()); // 输出 30
console.log(admin.getRole()); // 报错:'getRole' 是受保护方法

在这里:

  • name 是公有属性,外部可以直接访问。
  • _age 是私有属性,外部无法直接访问。
  • role 是受保护属性,只有子类可以访问。

6. 装饰器(Decorators)

(1) 定义
  • 装饰器是一种特殊的功能,用于在类或类成员上添加元数据或修改其行为。
  • 装饰器通常用于框架开发(如 Angular)或元编程场景。
(2) 启用装饰器
  • 需要在 tsconfig.json 中启用实验性装饰器支持:
    {"compilerOptions": {"experimentalDecorators": true}
    }
    
示例

以下是一个简单的装饰器示例:

示例 1:类装饰器
function logClass(target: Function) {console.log(`Class ${target.name} has been defined.`);
}@logClass
class User {name: string;constructor(name: string) {this.name = name;}
}const user = new User("Alice"); // 输出 "Class User has been defined."
示例 2:方法装饰器
function logMethod(target: any, propertyKey: string, descriptor: PropertyDescriptor) {const originalMethod = descriptor.value;descriptor.value = function (...args: any[]) {console.log(`Calling method '${propertyKey}' with arguments: ${args}`);return originalMethod.apply(this, args);};
}class Calculator {@logMethodadd(a: number, b: number): number {return a + b;}
}const calculator = new Calculator();
console.log(calculator.add(2, 3));
// 输出:
// Calling method 'add' with arguments: 2,3
// 5

在这里:

  • @logClass 是一个类装饰器,用于记录类的定义。
  • @logMethod 是一个方法装饰器,用于记录方法调用及其参数。

7. 总结

特性描述
属性用于存储数据,支持类型注解。
构造函数用于初始化类的实例,支持简化语法。
方法用于实现行为,可以通过 this 访问类的属性和其他方法。
存取器提供对属性的安全访问和修改,支持封装和验证逻辑。
访问修饰符控制类成员的可见性(publicprivateprotected)。
装饰器用于在类或类成员上添加元数据或修改行为,常用于框架开发。
http://www.dtcms.com/wzjs/10910.html

相关文章:

  • 中国建设银行网站怎么登录不上爱站官网
  • 商城型企业网站的功能宁德市地图
  • 网站建设亿玛酷适合5国内永久免费建站
  • 沧州礼品行业网站设计搜索网站哪个好
  • 合肥网站建设公互联网营销师怎么考
  • 动漫网站怎么做武威网站seo
  • 教育网站设计案例百度收录查询工具
  • 东莞招聘信息最新招聘2022百度seo新算法
  • 深圳做网站建设比较好的公司前端培训
  • 网站付款链接怎么做启动互联全网营销推广
  • 自建站网址推广营销网络
  • 宁波房产信息网官方网站win10系统优化软件
  • logo设计多少钱seo优化搜索推广
  • 怎么把个人做的网站上传到网上附近广告公司
  • 新手去哪个网站做翻译如何在百度投放广告
  • 简述建设一个网站的具体步骤自媒体平台排名前十
  • wordpress博客好吗seo排名软件
  • 天汇大厦网站建设公司百度账户安全中心
  • 服装公司网站网页设计亚马逊关键词排名提升
  • 虎门有没有做网站公司网页链接制作生成
  • 做网上任务赚钱的网站网址注册
  • 网站建设四个步骤泉州百度推广咨询
  • 阿里云做网站号码短视频推广
  • 建设政府网站多少钱国内十大软件培训机构
  • 新洲建设投标网站怎么推广网址
  • 香港旅游网站开发百度一下 你知道首页
  • 做网站怎么买服务器有广告位怎么找广告商
  • 宜昌网站推广优化技巧关键词优化精灵
  • 自学电脑做网站月入过万上海比较好的seo公司
  • 台州网站建设网站推广推广平台排名