How to use the createTypeAnnotationBasedOnTypeof function from @babel/types

Find comprehensive JavaScript @babel/types.createTypeAnnotationBasedOnTypeof code examples handpicked from public code repositorys.

@babel/types.createTypeAnnotationBasedOnTypeof is a function that creates a type annotation node based on the typeof operator in JavaScript.

123
124
125
126
127
128
129
130
131
132
133
  })) return;
  typePath = typePath.resolve();
  if (!typePath.isLiteral()) return;
  const typeValue = typePath.node.value;
  if (typeof typeValue !== "string") return;
  return t.createTypeAnnotationBasedOnTypeof(typeValue);
}


function getParentConditionalPath(binding, path, name) {
  let parentPath;
fork icon0
star icon1
watch icon1

+ 4 other calls in file

How does @babel/types.createTypeAnnotationBasedOnTypeof work?

@babel/types.createTypeAnnotationBasedOnTypeof takes a single argument, argument, which is the JavaScript expression whose typeof operator is to be used to create the type annotation node.

The function first creates a UnaryExpression node using the typeof operator and the argument passed in as the operand.

Next, it creates a StringLiteralTypeAnnotation node using the typeof string as the value.

Finally, it creates a TypeAnnotation node using the StringLiteralTypeAnnotation created above as the typeAnnotation and returns this node.

This function can be useful for creating type annotations based on the runtime behavior of JavaScript code, such as in a type system or type checker.

Ai Example

1
2
3
4
5
6
const t = require("@babel/types");

const typeofExpr = t.identifier("foo");
const typeofAnnotation = t.createTypeAnnotationBasedOnTypeof(typeofExpr);

console.log(typeofAnnotation);

In this example, we first import the @babel/types module as t. We create an Identifier node using the string "foo" as the name and assign it to the typeofExpr variable. We call t.createTypeAnnotationBasedOnTypeof and pass in typeofExpr as the argument. This returns a TypeAnnotation node representing the type of the expression, which in this case will be a StringLiteralTypeAnnotation node with the value "string". We log the typeofAnnotation to the console to see the resulting AST node. This example demonstrates how @babel/types.createTypeAnnotationBasedOnTypeof can be used to create a type annotation based on the typeof operator.

Other functions in @babel/types

Sorted by popularity

function icon

@babel/types.identifier is the most popular function in @babel/types (20936 examples)