mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Adds support for marking a directive input as required. During template type checking, the compiler will verify that all required inputs have been specified and will raise a diagnostic if one or more are missing. Some specifics: * Inputs are marked as required by passing an object literal with a `required: true` property to the `Input` decorator or into the `inputs` array. * Required inputs imply that the directive can't work without them. This is why there's a new check that enforces that all required inputs of a host directive are exposed on the host. * Required input diagnostics are reported through the `OutOfBandDiagnosticRecorder`, rather than generating a new structure in the TCB, because it allows us to provide a better error message. * Currently required inputs are only supported during AOT compilation, because knowing which bindings are present during JIT can be tricky and may lead to increased bundle sizes. Fixes #37706. PR Close #49304 |
||
|---|---|---|
| .. | ||
| babel | ||
| src | ||
| test | ||
| BUILD.bazel | ||
| index.ts | ||
| README.md | ||
Angular Linker
This package contains a FileLinker and supporting code to be able to "link" partial declarations of components, directives, etc in libraries to produce the full definitions.
The partial declaration format allows library packages to be published to npm without exposing the underlying Ivy instructions.
The tooling here allows application build tools (e.g. CLI) to produce fully compiled components, directives, etc at the point when the application is bundled.
These linked files can be cached outside node_modules so it does not suffer from problems of mutating packages in node_modules.
Generally this tooling will be wrapped in a transpiler specific plugin, such as the provided Babel plugin.
Unit Testing
The unit tests are built and run using Bazel:
yarn bazel test //packages/compiler-cli/linker/test