# All files / src/decorators Prop.ts

100% Statements 7/7
50% Branches 1/2
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    1x
    1x
    1x

    1x
    1x

    1x

    1x

     import { createDecorator } from './Component'
    import type { Doraemon } from '../Doraemon'
    import type { PropOptions } from '../types/options'

    type Constructor = {
      new (...args: any[]): any;
    }

    /**
     * decorator of a prop
     *
     * @param  options the options for the prop
     * @return PropertyDecorator | void
     */
    export function Prop (options?: (PropOptions | Constructor[] | Constructor)): PropertyDecorator {
      return function (target: Doraemon, key: string) {
        createDecorator((componentOptions, k) => {
          ;(componentOptions.props || ((componentOptions.props = {}) as any))[
            k
          ] = options
        })(target, key)
      }
    }