Package com.google.javascript.rhino.jstype

# Class NullType

java.lang.Object
com.google.javascript.rhino.jstype.JSType
com.google.javascript.rhino.jstype.NullType

All Implemented Interfaces:
  `Serializable`

public final class NullType extends JSType
Null type.

See Also:
  - Serialized Form

## Nested Class Summary

## 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, templateTypeMap, UNKNOWN_NAME`

## Method Summary

Modifier and Type
Method
Description
`String`
`getDisplayName()`
Returns a user meaningful label for the JSType instance.
`BooleanLiteralSet`
`getPossibleToBooleanOutcomes()`
Computes the set of possible outcomes of the `ToBoolean` predicate for this type.
`boolean`
`hasDisplayName()`
`boolean`
`isNullable()`
Tests whether this type is nullable.
`boolean`
`isNullType()`
`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`
`restrictByNotNullOrUndefined()`
If this is a union type, returns a union type that does not include the null or undefined type.
`TernaryValue`
`testForEquality(JSType that)`
Compares `this` and `that`.
`<T> T`
`visit(Visitor<T> visitor)`
Visit this type with the given visitor.

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

`autobox, autoboxesTo, canBeCalled, canCastTo, canTestForEqualityWith, canTestForShallowEqualityWith, clearResolved, collapseUnion, dereference, differsFrom, equals, findPropertyType, forceResolve, getGreatestSubtype, getJSDocInfo, getLeastSupertype, getRestrictedTypeGivenToBooleanOutcome, getTemplateTypeMap, getTypesUnderEquality, getTypesUnderInequality, getTypesUnderShallowEquality, getTypesUnderShallowInequality, hasAnyTemplateTypes, hashCode, hasProperty, isAllType, isArrayType, isBooleanObjectType, isBooleanValueType, isCheckedUnknownType, isConstructor, isDateType, isDict, isEmptyType, isEnumElementType, isEnumType, isEquivalent, isEquivalentTo, isFunctionPrototypeType, isFunctionType, isGlobalThisType, isInstanceType, isInterface, isInvariant, isNominalConstructor, isNominalType, isNoObjectType, isNoResolvedType, isNoType, isNumber, isNumberObjectType, isNumberValueType, isObject, isOrdinaryFunction, isRecordType, isRegexpType, isResolved, isString, isStringObjectType, isStringValueType, isStruct, isSubtype, isTemplateType, isTemplatizedType, isUnionType, isUnknownType, isVoidType, matchConstraint, matchesInt32Context, matchesUint32Context, resolve, setValidator, toAnnotationString, toDebugHashCodeString, toMaybeEnumElementType, toMaybeEnumType, toMaybeFunctionType, toMaybeFunctionType, toMaybeTemplateType, toMaybeTemplateType, toMaybeTemplatizedType, toMaybeTemplatizedType, toMaybeUnionType, toObjectType, toString, unboxesTo`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Method Details

### isNullType

public boolean isNullType()

Overrides:
  `isNullType` in class `JSType`

### isNullable

public boolean isNullable()
Description copied from class: `JSType`
Tests whether this type is nullable.

Overrides:
  `isNullable` in class `JSType`

### 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 `JSType`

### 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 `JSType`

### 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 `JSType`

### restrictByNotNullOrUndefined

public JSType restrictByNotNullOrUndefined()
Description copied from class: `JSType`
If this is a union type, returns a union type that does not include the null or undefined type.

Overrides:
  `restrictByNotNullOrUndefined` in class `JSType`

### testForEquality

public TernaryValue testForEquality(JSType that)
Description copied from class: `JSType`
Compares `this` and `that`.

Overrides:
  `testForEquality` in class `JSType`
Returns:
  - `TernaryValue.TRUE` if the comparison of values of `this` type and `that` always succeed (such as `undefined` compared to `null`)
  - `TernaryValue.FALSE` if the comparison of values of `this` type and `that` always fails (such as `undefined` compared to `number`)
  - `TernaryValue.UNKNOWN` if the comparison can succeed or fail depending on the concrete values

### getDisplayName

public String getDisplayName()
Description copied from class: `JSType`
Returns a user meaningful label for the JSType instance. For example, Functions and Enums will return their declaration name (if they have one). Some types will not have a meaningful display name. Calls to hasDisplayName() will return true IFF getDisplayName() will return null or a zero length string.

Overrides:
  `getDisplayName` in class `JSType`
Returns:
  the display name of the type, or null if one is not available

### 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}

Specified by:
  `getPossibleToBooleanOutcomes` in class `JSType`
Returns:
  the set of boolean literals for this type

### visit

public <T> T visit(Visitor<T> visitor)
Description copied from class: `JSType`
Visit this type with the given visitor.

Specified by:
  `visit` in class `JSType`
Returns:
  the value returned by the visitor
See Also:
  - `Visitor`

### hasDisplayName

public boolean hasDisplayName()

Overrides:
  `hasDisplayName` in class `JSType`
Returns:
  true if the JSType has a user meaningful label.