@primno/core
Version:
Front-end framework for Model-Driven Apps of Power Apps and Dynamics 365.
67 lines (66 loc) • 1.4 kB
TypeScript
import { Constructor } from "../../typing";
/**
* Options for the `Injectable` decorator.
*/
interface InjectableOptions {
/**
* Determines where the dependency is provided.
*/
providedIn?: "root";
}
/**
* Decorator that marks a class providable as a dependency.
*
* Use the `providedIn` option to provide the dependency in the root injector.
*
* @example Mark `MyService` as a dependency in a component.
* ```ts
* @Injectable()
* class MyService {
* doSomething() {
* console.log("Hello World!");
* }
* }
*
* @MnComponent({
* scope: {
* pageType: "record"
* },
* providers: [
* MyService
* ]
* })
* export class MyComponent {
* constructor(myService: MyService) {
* myService.doSomething();
* }
* }
* ```
*
* @example Mark `MyService` as a dependency and provide it in the root injector.
* ```ts
* @Injectable({
* providedIn: "root"
* })
* class MyService {
* doSomething() {
* console.log("Hello World!");
* }
* }
*
* @MnComponent({
* scope: {
* pageType: "record"
* }
* })
* export class MyComponent {
* constructor(myService: MyService) {
* myService.doSomething();
* }
* }
* ```
*
* @category Dependency Injection
*/
export declare function Injectable<T extends Constructor>(options?: InjectableOptions): (target: T) => void;
export {};