microsoft / microsoft/typespec
Support for #if compile directive
- Dominant language
- Java
- Stars
- 5.9k
- Forks
- 394
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 104
Description
### Description
Typespec has support for compile time parameters. These parameters can be used to configure options for emitters, but these parameters can't be used in the typespec code.
There are situations where compile time directives would be useful to a typespec file. You might want to build multiple different variants of a service. Directives that can use values from the parameters could prove useful in these situations.
```yaml
# tspconfig.yaml
parameters:
local:
default: "false"
```
```typespec
// main.tsp
#if parameters.local == "true"
namespace Private.Contoso
#else
namespace Microsoft.Contoso
#endif
```
### Checklist
- [x] Follow our [Code of Conduct](https://github.com/microsoft/typespec/blob/main/CODE_OF_CONDUCT.md)
- [x] Read the [docs](https://typespec.io/docs/).
- [x] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Contributor guide
Assessment
This issue has not been assessed yet.