diff --git a/packages/babel-types/src/asserts/generated/index.js b/packages/babel-types/src/asserts/generated/index.js index 725c0e7dba..65cb2901e8 100644 --- a/packages/babel-types/src/asserts/generated/index.js +++ b/packages/babel-types/src/asserts/generated/index.js @@ -828,6 +828,9 @@ export function assertTSTupleType(node: Object, opts?: Object = {}): void { export function assertTSOptionalType(node: Object, opts?: Object = {}): void { assert("TSOptionalType", node, opts); } +export function assertTSRestType(node: Object, opts?: Object = {}): void { + assert("TSRestType", node, opts); +} export function assertTSUnionType(node: Object, opts?: Object = {}): void { assert("TSUnionType", node, opts); } diff --git a/packages/babel-types/src/builders/generated/index.js b/packages/babel-types/src/builders/generated/index.js index 8692bf7ba0..86ac361d3d 100644 --- a/packages/babel-types/src/builders/generated/index.js +++ b/packages/babel-types/src/builders/generated/index.js @@ -798,6 +798,11 @@ export function TSOptionalType(...args: Array): Object { } export { TSOptionalType as tsOptionalType }; export { TSOptionalType as tSOptionalType }; +export function TSRestType(...args: Array): Object { + return builder("TSRestType", ...args); +} +export { TSRestType as tsRestType }; +export { TSRestType as tSRestType }; export function TSUnionType(...args: Array): Object { return builder("TSUnionType", ...args); } diff --git a/packages/babel-types/src/validators/generated/index.js b/packages/babel-types/src/validators/generated/index.js index c677379fef..41484fa048 100644 --- a/packages/babel-types/src/validators/generated/index.js +++ b/packages/babel-types/src/validators/generated/index.js @@ -2686,6 +2686,20 @@ export function isTSOptionalType(node: Object, opts?: Object): boolean { return false; } +export function isTSRestType(node: Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "TSRestType") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} export function isTSUnionType(node: Object, opts?: Object): boolean { if (!node) return false; @@ -4164,6 +4178,7 @@ export function isTSType(node: Object, opts?: Object): boolean { "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || + "TSRestType" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType ||