typescript 当有 prop 的时候,有可能避免写构造函数吗?

dsekswqp  于 2023-02-25  发布在  TypeScript
关注(0)|答案(2)|浏览(142)

例如,我有一个类和一个 prop 接口:

interface PropsInterface {
 propertyName: dataType
}
class Example {
  constructor(props: PropsInterface) {
     this.exampleProps = props
  }

  exampleProps: PropsInterface
}

有没有可能避免编写构造函数?
例如,类似于React类组件与props,其中我们可以简单地这样写:

class Example extends React.Component<PropsInterface, any> {
  exampleProps = this.props.propertyName
}

谢谢你!

5m1hhzi4

5m1hhzi41#

您可以使用访问修饰符(privateprotectedpublicreadonly)限定构造函数参数,它们将自动转换为类属性:

interface PropsInterface {
  propertyName: string;
}

class Example {
  constructor(public props: PropsInterface) {}
}

console.log(new Example({ propertyName: 'test' }).props);

手册将此称为“参数属性”。详细信息请参见此处。

mcvgt66p

mcvgt66p2#

如果你在propertyName的末尾加上一个!,typescript就不会检查它是否在构造函数中。

interface PropsInterface {
     propertyName!: dataType
 }

相关问题