class使用闭包方式初始化 默认值丢失?

//1.创建一个类,有默认值
class Test2{
  name?:string = ‘xiaoming’
  sex?:string = ‘male’
  age? :number = 20
}
//2. 创建一个对象
let test2 :Test2 = {}
//3.读取字段name: test.name 此时读取是undefined 而非xiaoming
阅读 177
1 个回答

解决措施

class如果不支持闭包方式初始化拥有默认值,那支持闭包的意义是什么,这种场景是不是用interface就好了,class老老实实用new对象方式初始化

上述伙伴的问题在ts 中的运行的效果也是一致的;

可以通过以下两种方式创建对象:
// 通过Object literal 方式创建一个对象
let test2: Test2 = {
  name: “zhangsan”,
  sex: “female”,
  age: 30
}

// 通过 new 创建一个对象,有默认值
let test3: Test2 = new Test2();
console.log("test2.name = " + test2.name);
console.log("test3.name = " + test3.name)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进