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

网站建设与开发毕业论文定制网站建设

网站建设与开发毕业论文,定制网站建设,上海最有名的公司集团,建站网站平台在 TypeScript(TS)中,构造器(constructor) 是用于创建和初始化类实例的特殊方法。它在类实例化时自动调用。 1. 基本语法 class Person {name: string;constructor(name: string) {this.name name;}greet() {consol…

在 TypeScript(TS)中,构造器(constructor) 是用于创建和初始化类实例的特殊方法。它在类实例化时自动调用。

1. 基本语法

class Person {name: string;constructor(name: string) {this.name = name;}greet() {console.log(`Hello, my name is ${this.name}`);}
}const p = new Person("Alice");
p.greet(); // 输出: Hello, my name is Alice
  • constructor 方法new Person("Alice") 时被调用。
  • this.name = name 赋值,将参数存入实例属性。

2. 构造器参数的访问修饰符

TypeScript 允许直接在构造器参数前加 publicprivateprotected,这样可以省略手动赋值

class Person {constructor(public name: string) {} // 自动创建并赋值 name 属性greet() {console.log(`Hello, my name is ${this.name}`);}
}const p = new Person("Bob");
console.log(p.name); // Bob

修饰符说明:

  • public(默认)→ 外部可访问。
  • private → 仅类内部可访问。
  • protected → 仅类及其子类可访问。

示例:

class Example {constructor(private secret: string) {}showSecret() {console.log(this.secret); // ✅ 内部可访问}
}const e = new Example("hidden");
// console.log(e.secret); ❌ 报错:属性“secret”为私有属性

3. 构造函数重载(伪重载)

TypeScript 不支持真正的构造函数重载,但可以通过 可选参数联合类型 模拟:

class User {name: string;age?: number;constructor(name: string);constructor(name: string, age: number);constructor(name: string, age?: number) {this.name = name;if (age !== undefined) {this.age = age;}}
}const u1 = new User("Tom");        // 只传 name
const u2 = new User("Jerry", 25);  // 传 name 和 age

4. 构造器中的 readonly 属性

如果某个属性只在构造器中赋值,之后不可修改,可以用 readonly

class Car {constructor(public readonly brand: string) {}changeBrand(newBrand: string) {// this.brand = newBrand; ❌ 报错,brand 是 readonly}
}const car = new Car("Tesla");
console.log(car.brand); // Tesla
// car.brand = "BMW"; ❌ 报错

5. 继承中的构造器

在子类中,构造器需要调用 super() 以执行父类的构造函数:

class Animal {constructor(public species: string) {}
}class Dog extends Animal {constructor(species: string, public breed: string) {super(species); // 调用父类构造函数}
}const d = new Dog("Canine", "Labrador");
console.log(d.species, d.breed); // Canine Labrador

6. 抽象类的构造器

抽象类不能被直接实例化,但可以在子类中使用 super() 继承其构造逻辑:

abstract class Shape {constructor(public color: string) {}
}class Circle extends Shape {constructor(color: string, public radius: number) {super(color);}
}const c = new Circle("red", 10);
console.log(c.color, c.radius); // red 10

总结

  • 构造器是 constructor 方法,用于初始化对象。
  • 可以省略 this.属性 = 参数,直接在参数前加修饰符(publicprivateprotectedreadonly
  • TypeScript 不支持真正的构造函数重载,但可以用可选参数或联合类型模拟
  • 子类必须调用 super() 以继承父类构造逻辑
  • readonly 属性只能在构造时赋值,之后不可更改
http://www.dtcms.com/wzjs/239875.html

相关文章:

  • 上海企业网上公示系统seo公司资源
  • 兰州市城乡建设局网官网站西安百度推广运营
  • 花钱做网站seo网站优化知识
  • 个人网站做导购要什么经营许可网站优化外包
  • 做红包图片的网站西安整站优化
  • 360兼容模式网站错位足球队世界排名榜
  • 个人网站界面设计图片深圳做网站公司
  • 省政府网站管理与建设方案下载百度免费版
  • 子网站怎么建设指数基金怎么买才赚钱
  • 什么是网站的用户体验优化设计全部答案
  • 温州网站优化案例营销策略包括哪些方面
  • h5营销型网站suteng找谁做百度关键词排名
  • 公司简介网站模板seo关键词优化的技巧和方法
  • 网站建设价格多少钱百度视频推广怎么收费
  • 查看网站建设工作产品市场营销策划书
  • 中企动力近期做的网站百度链接地址
  • 宁波网站搭建灰色行业seo大神
  • 怎么做倒计时网站常州seo排名收费
  • 彩票网站开发www.udan网络推广渠道排名
  • 成都代做网站网络营销渠道策略研究
  • wordpress网店插件seo网页推广
  • 音乐网站建立推广普通话手抄报文字内容
  • 关注济南网站建设北京互联网公司排名
  • 好网站的标准如何在百度发布广告
  • 空间购买后打不开网站优化网络推广外包
  • 灰色网站建设seo网络推广培训
  • 江西建设厅教育网站seoapp推广
  • 怎么弄自己的小程序培训机构优化
  • ecs云服务器建设网站新闻今日要闻
  • 医疗行业网站建设哈尔滨最新