---
layout: docs
title: Facebook\HackCodegen\CodegenShapeMember
id: class.Facebook.HackCodegen.CodegenShapeMember
docid: class.Facebook.HackCodegen.CodegenShapeMember
permalink: /docs/reference/class.Facebook.HackCodegen.CodegenShapeMember/
---
# Facebook\\HackCodegen\\CodegenShapeMember




## Interface Synopsis




``` Hack
namespace Facebook\HackCodegen;

final class CodegenShapeMember {...}
```




### Public Methods




+ [` ->__construct(string $name, \mixed $type) `](<class.Facebook.HackCodegen.CodegenShapeMember.__construct.md>)
+ [` ->getIsOptional(): bool `](<class.Facebook.HackCodegen.CodegenShapeMember.getIsOptional.md>)
+ [` ->getName(): string `](<class.Facebook.HackCodegen.CodegenShapeMember.getName.md>)
+ [` ->getType(): string `](<class.Facebook.HackCodegen.CodegenShapeMember.getType.md>)
+ [` ->setIsOptional(bool $value = true): \this `](<class.Facebook.HackCodegen.CodegenShapeMember.setIsOptional.md>)