Skip to content
Anton edited this page Aug 9, 2019 · 24 revisions

An argument can be specified in a number of ways:

  1. In the body of the constructor or interface elements in XML, and its methods:
    <types>
      <interface name="Example"
        desc="Specifying arguments to a constructor of an interface.">
    
        <arg boolean name="wiki">Whether compiling a Wiki page.</arg>
    
        <static name="upload">
          <arg opt type="string" name="dest">Where to upload.</arg>
          Uploads data to the server.
        </static>
    
      </interface>
    </types>
    Example: Specifying arguments to a constructor of an interface.
    Name Type & Description
    constructor new (wiki: boolean) => Example
    Constructor method.
    static upload (dest?: string) => void
    Uploads data to the server.
  2. In the body of a function of a type:
    <types>
      <type name="FnExample" desc="A non-instantiable record type.">
        <fn name="getData">
          <arg string name="source">
            The source from which to extract.
          </arg>
          Requests the data from the server.
        </fn>
    
        <function name="transform">
          <arg type="?string" name="input">The input.</arg>
          Transforms given string.
        </function>
      </type>
    </types>
    FnExample: A non-instantiable record type.
    Name Type & Description
    transform* (input: ?string) => void
    Transforms given string.
    getData* (source: string) => void
    Requests the data from the server.
  3. In the body of a method:
    <types namespace="wiki">
      <method async desc="workHard" desc="Spawns a worker process.">
        <arg number name="hours">How long to work for.</arg>
        <arg type="wiki.Location" name="location">Where to work.</arg>
      </method>
      <type name="Location">
        <prop number name="lat" />
        <prop number name="long" />
      </type>
    </types>

The actual Arg interface is the following:

Arg: An argument of a constructor or method.

Name Type & Description Initial
name ?string null
The name of the type.
type string
The type of the argument.
optional boolean false
Whether the argument is optional.
description string
Description of the argument.
Clone this wiki locally