## com.google.javascript.rhino.jstype
Class NoType

    java.lang.Object
      com.google.javascript.rhino.jstype.JSType
          com.google.javascript.rhino.jstype.ObjectType
              com.google.javascript.rhino.jstype.FunctionType
                  com.google.javascript.rhino.jstype.NoObjectType
                      com.google.javascript.rhino.jstype.NoType

All Implemented Interfaces:
  StaticScope<JSType>, Serializable

    public class NoType

extends NoObjectType

Bottom type, representing the subclass of any value or object. Although JavaScript programmers can't explicitly denote the bottom type, it comes up in static analysis. For example, if we have: `var x = null; if (x) { f(x); }` We need to be able to assign `x` a type within the `f(x)` call. Since it has no possible type, we assign `x` the NoType, so that `f(x)` is legal no matter what the type of `f`'s first argument is.

See Also:
  Bottom types, Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class com.google.javascript.rhino.jstype.ObjectType
`ObjectType.Property`

Nested classes/interfaces inherited from class com.google.javascript.rhino.jstype.JSType
`JSType.TypePair`

Field Summary

Fields inherited from class com.google.javascript.rhino.jstype.JSType
`EMPTY_TYPE_COMPONENT, ENUMDECL, NOT_A_CLASS, NOT_A_TYPE, NOT_ENUMDECL, UNKNOWN_NAME`

Method Summary
`Iterable<ObjectType>` | `getCtorExtendedInterfaces()` Gets the interfaces extended by the interface associated with this type.
`Iterable<ObjectType>` | `getCtorImplementedInterfaces()` Gets the interfaces implemented by the ctor associated with this type.
`FunctionType` | `getOwnerFunction()` Gets the owner of this if it's a function prototype.
`BooleanLiteralSet` | `getPossibleToBooleanOutcomes()` Computes the set of possible outcomes of the `ToBoolean` predicate for this type.
`Node` | `getPropertyNode(String propertyName)` Gets the node corresponding to the definition of the specified property.
`boolean` | `hasOwnProperty(String propertyName)` Checks whether the property whose name is given is present directly on the object.
`boolean` | `hasReferenceName()` Returns true if the object is named.
`boolean` | `isNativeObjectType()` Whether this is a built-in object.
`boolean` | `isNoObjectType()`
`boolean` | `isNoType()`
`boolean` | `isNullable()` Tests whether this type is nullable.
`boolean` | `isPropertyInExterns(String propertyName)` Checks whether the property was defined in the externs.
`boolean` | `isPropertyTypeDeclared(String property)` Checks whether the property's type is declared.
`boolean` | `isSubtype(JSType that)` A function is a subtype of another if their call methods are related via subtyping and `this` is a subtype of `that` with regard to the prototype chain.
`void` | `matchConstraint(ObjectType constraintObj)` Modify this type so that it matches the specified type.
`boolean` | `matchesNumberContext()` This predicate is used to test whether a given type can appear in a numeric context, such as an operand of a multiply operator.
`boolean` | `matchesObjectContext()` This predicate is used to test whether a given type can appear in an `Object` context, such as the expression in a with statement.
`boolean` | `matchesStringContext()` This predicate is used to test whether a given type can appear in a `String` context, such as an operand of a string concat (+) operator.
`JSType` | `unboxesTo()` Gets the type to which this type unboxes.

`

`<T> T`

`

`visit(Visitor<T> visitor)`
Visit this type with the given visitor.

Methods inherited from class com.google.javascript.rhino.jstype.NoObjectType
`getConstructor, getImplicitPrototype, getOwnPropertyJSDocInfo, getPropertiesCount, getPropertyType, getReferenceName, hashCode, hasProperty, isEquivalentTo, isPropertyTypeInferred, removeProperty, setPropertyJSDocInfo, toMaybeFunctionType`

Methods inherited from class com.google.javascript.rhino.jstype.FunctionType

`canBeCalled, clearCachedValues, getAllExtendedInterfaces, getAllImplementedInterfaces, getBindReturnType, getExtendedInterfaces, getExtendedInterfacesCount, getImplementedInterfaces, getInstanceType, getMaxArguments, getMinArguments, getOwnImplementedInterfaces, getOwnPropertyNames, getParameters, getParametersNode, getPrototype, getReturnType, getSlot, getSource, getSubTypes, getSuperClassConstructor, getTemplateTypeName, getTopDefiningInterface, getTopMostDefiningType, getTypeOfThis, hasCachedValues, hasEqualCallType, hasImplementedInterfaces, hasInstanceType, isConstructor, isInstanceType, isInterface, isOrdinaryFunction, isReturnTypeInferred, setExtendedInterfaces, setImplementedInterfaces, setPrototypeBasedOn, setSource, toDebugHashCodeString`

Methods inherited from class com.google.javascript.rhino.jstype.ObjectType
`cast, createDelegateSuffix, defineDeclaredProperty, defineInferredProperty, findPropertyType, getDisplayName, getIndexType, getJSDocInfo, getNormalizedReferenceName, getOwnSlot, getParameterType, getParentScope, getPropertyNames, getRootNode, isFunctionPrototypeType, isObject, isUnknownType, setJSDocInfo, testForEquality`

Methods inherited from class com.google.javascript.rhino.jstype.JSType

`autobox, autoboxesTo, canAssignTo, canTestForEqualityWith, canTestForShallowEqualityWith, clearResolved, collapseUnion, dereference, differsFrom, equals, forceResolve, getGreatestSubtype, getLeastSupertype, getRestrictedTypeGivenToBooleanOutcome, getTypesUnderEquality, getTypesUnderInequality, getTypesUnderShallowEquality, getTypesUnderShallowInequality, hasDisplayName, isAllType, isArrayType, isBooleanObjectType, isBooleanValueType, isCheckedUnknownType, isDateType, isEmptyType, isEnumElementType, isEnumType, isEquivalent, isFunctionType, isGlobalThisType, isNominalConstructor, isNominalType, isNoResolvedType, isNullType, isNumber, isNumberObjectType, isNumberValueType, isRecordType, isRegexpType, isResolved, isString, isStringObjectType, isStringValueType, isTemplateType, isUnionType, isVoidType, matchesInt32Context, matchesUint32Context, resolve, restrictByNotNullOrUndefined, setValidator, toAnnotationString, toMaybeEnumElementType, toMaybeEnumType, toMaybeFunctionType, toMaybeUnionType, toObjectType, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Method Detail

### isNoObjectType

    public boolean isNoObjectType()

  Overrides:
    `isNoObjectType` in class `NoObjectType`

### isNoType

    public boolean isNoType()

  Overrides:
    `isNoType` in class `JSType`

### isNullable

    public boolean isNullable()

  Description copied from class: `JSType`
  Tests whether this type is nullable.

  Overrides:
    `isNullable` in class `JSType`

### isSubtype

    public boolean isSubtype(JSType that)

  Description copied from class: `FunctionType`
  A function is a subtype of another if their call methods are related via subtyping and `this` is a subtype of `that` with regard to the prototype chain.

  Overrides:
    `isSubtype` in class `NoObjectType`
  Returns:
    `this &lt;: that`

### getPossibleToBooleanOutcomes

    public BooleanLiteralSet getPossibleToBooleanOutcomes()

  Description copied from class: `JSType`
  Computes the set of possible outcomes of the `ToBoolean` predicate for this type. The `ToBoolean` predicate is defined by the ECMA-262 standard, 3rd edition. Its behavior for simple types can be summarized by the following table:

  type | result
  --- | ---
  `undefined` | {false}
  `null` | {false}
  `boolean` | {true, false}
  `number` | {true, false}
  `string` | {true, false}
  `Object` | {true}

  Overrides:
    `getPossibleToBooleanOutcomes` in class `ObjectType`
  Returns:
    the set of boolean literals for this type

### matchesNumberContext

    public boolean matchesNumberContext()

  Description copied from class: `JSType`
  This predicate is used to test whether a given type can appear in a numeric context, such as an operand of a multiply operator.

  Overrides:
    `matchesNumberContext` in class `NoObjectType`

### matchesObjectContext

    public boolean matchesObjectContext()

  Description copied from class: `JSType`
  This predicate is used to test whether a given type can appear in an `Object` context, such as the expression in a with statement. Most types we will encounter, except notably `null`, have at least the potential for converting to `Object`. Host defined objects can get peculiar.

  Overrides:
    `matchesObjectContext` in class `NoObjectType`

### matchesStringContext

    public boolean matchesStringContext()

  Description copied from class: `JSType`
  This predicate is used to test whether a given type can appear in a `String` context, such as an operand of a string concat (+) operator. All types have at least the potential for converting to `String`. When we add externally defined types, such as a browser OM, we may choose to add types that do not automatically convert to `String`.

  Overrides:
    `matchesStringContext` in class `NoObjectType`

### visit

    public <T> T visit(Visitor<T> visitor)

  Description copied from class: `JSType`
  Visit this type with the given visitor.

  Overrides:
    `visit` in class `NoObjectType`
  Returns:
    the value returned by the visitor
  See Also:
    `Visitor`

### hasOwnProperty

    public boolean hasOwnProperty(String propertyName)

  Description copied from class: `ObjectType`
  Checks whether the property whose name is given is present directly on the object. Returns false even if it is declared on a supertype.

  Overrides:
    `hasOwnProperty` in class `ObjectType`

### isPropertyTypeDeclared

    public boolean isPropertyTypeDeclared(String property)

  Description copied from class: `ObjectType`
  Checks whether the property's type is declared.

  Specified by:
    `isPropertyTypeDeclared` in class `ObjectType`

### isPropertyInExterns

    public boolean isPropertyInExterns(String propertyName)

  Description copied from class: `ObjectType`
  Checks whether the property was defined in the externs.

  Overrides:
    `isPropertyInExterns` in class `ObjectType`

### getPropertyNode

    public Node getPropertyNode(String propertyName)

  Description copied from class: `ObjectType`
  Gets the node corresponding to the definition of the specified property. This could be the node corresponding to declaration of the property or the node corresponding to the first reference to this property, e.g., "this.propertyName" in a constructor. Note this is mainly intended to be an estimate of where in the source code a property is defined. Sometime the returned node is not even part of the global AST but in the AST of the JsDoc that defines a type.

  Overrides:
    `getPropertyNode` in class `ObjectType`
  Parameters:
    `propertyName` - the name of the property
  Returns:
    the `Node` corresponding to the property or null.

### unboxesTo

    public JSType unboxesTo()

  Description copied from class: `JSType`
  Gets the type to which this type unboxes.

  Overrides:
    `unboxesTo` in class `JSType`
  Returns:
    the unboxed type or `null` if this type does not unbox.

### hasReferenceName

    public boolean hasReferenceName()

  Description copied from class: `ObjectType`
  Returns true if the object is named.

  Overrides:
    `hasReferenceName` in class `ObjectType`
  Returns:
    true if the object is named, false if it is anonymous

### isNativeObjectType

    public boolean isNativeObjectType()

  Whether this is a built-in object.

  Overrides:
    `isNativeObjectType` in class `ObjectType`

### getOwnerFunction

    public FunctionType getOwnerFunction()

  Description copied from class: `ObjectType`
  Gets the owner of this if it's a function prototype.

  Overrides:
    `getOwnerFunction` in class `ObjectType`

### getCtorImplementedInterfaces

    public Iterable<ObjectType> getCtorImplementedInterfaces()

  Description copied from class: `ObjectType`
  Gets the interfaces implemented by the ctor associated with this type. Intended to be overridden by subclasses.

  Overrides:
    `getCtorImplementedInterfaces` in class `ObjectType`

### getCtorExtendedInterfaces

    public Iterable<ObjectType> getCtorExtendedInterfaces()

  Description copied from class: `ObjectType`
  Gets the interfaces extended by the interface associated with this type. Intended to be overriden by subclasses.

  Overrides:
    `getCtorExtendedInterfaces` in class `ObjectType`

### matchConstraint

    public void matchConstraint(ObjectType constraintObj)

  Description copied from class: `JSType`
  Modify this type so that it matches the specified type. This is useful for reverse type-inference, where we want to infer that an object literal matches its contraint (much like how the java compiler does reverse-inference to figure out generics).

  Overrides:
    `matchConstraint` in class `JSType`