TypeScript: reserve unknown as TSUnknownKeyword (#8755)
This commit is contained in:
parent
889cdb8da5
commit
f38be13113
@ -127,6 +127,9 @@ export function TSIndexSignature(node) {
|
|||||||
export function TSAnyKeyword() {
|
export function TSAnyKeyword() {
|
||||||
this.word("any");
|
this.word("any");
|
||||||
}
|
}
|
||||||
|
export function TSUnknownKeyword() {
|
||||||
|
this.word("unknown");
|
||||||
|
}
|
||||||
export function TSNumberKeyword() {
|
export function TSNumberKeyword() {
|
||||||
this.word("number");
|
this.word("number");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
let a: any;
|
let a: any;
|
||||||
|
let un: unknown;
|
||||||
let b: boolean;
|
let b: boolean;
|
||||||
let ne: never;
|
let ne: never;
|
||||||
let nul: null;
|
let nul: null;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
let a: any;
|
let a: any;
|
||||||
|
let un: unknown;
|
||||||
let b: boolean;
|
let b: boolean;
|
||||||
let ne: never;
|
let ne: never;
|
||||||
let nul: null;
|
let nul: null;
|
||||||
@ -7,4 +8,4 @@ let o: object;
|
|||||||
let st: string;
|
let st: string;
|
||||||
let sy: symbol;
|
let sy: symbol;
|
||||||
let u: undefined;
|
let u: undefined;
|
||||||
let v: void;
|
let v: void;
|
||||||
|
|||||||
@ -57,6 +57,8 @@ function keywordTypeFromName(
|
|||||||
return "TSSymbolKeyword";
|
return "TSSymbolKeyword";
|
||||||
case "undefined":
|
case "undefined":
|
||||||
return "TSUndefinedKeyword";
|
return "TSUndefinedKeyword";
|
||||||
|
case "unknown":
|
||||||
|
return "TSUnknownKeyword";
|
||||||
default:
|
default:
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1119,6 +1119,7 @@ export type TsTypeBase = NodeBase;
|
|||||||
|
|
||||||
export type TsKeywordTypeType =
|
export type TsKeywordTypeType =
|
||||||
| "TSAnyKeyword"
|
| "TSAnyKeyword"
|
||||||
|
| "TSUnknownKeyword"
|
||||||
| "TSNumberKeyword"
|
| "TSNumberKeyword"
|
||||||
| "TSObjectKeyword"
|
| "TSObjectKeyword"
|
||||||
| "TSBooleanKeyword"
|
| "TSBooleanKeyword"
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
let a: any;
|
let a: any;
|
||||||
|
let un: unknown;
|
||||||
let b: boolean;
|
let b: boolean;
|
||||||
let ne: never;
|
let ne: never;
|
||||||
let nul: null;
|
let nul: null;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -762,6 +762,9 @@ export function assertTSIndexSignature(node: Object, opts?: Object = {}): void {
|
|||||||
export function assertTSAnyKeyword(node: Object, opts?: Object = {}): void {
|
export function assertTSAnyKeyword(node: Object, opts?: Object = {}): void {
|
||||||
assert("TSAnyKeyword", node, opts);
|
assert("TSAnyKeyword", node, opts);
|
||||||
}
|
}
|
||||||
|
export function assertTSUnknownKeyword(node: Object, opts?: Object = {}): void {
|
||||||
|
assert("TSUnknownKeyword", node, opts);
|
||||||
|
}
|
||||||
export function assertTSNumberKeyword(node: Object, opts?: Object = {}): void {
|
export function assertTSNumberKeyword(node: Object, opts?: Object = {}): void {
|
||||||
assert("TSNumberKeyword", node, opts);
|
assert("TSNumberKeyword", node, opts);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -698,6 +698,11 @@ export function TSAnyKeyword(...args: Array<any>): Object {
|
|||||||
}
|
}
|
||||||
export { TSAnyKeyword as tsAnyKeyword };
|
export { TSAnyKeyword as tsAnyKeyword };
|
||||||
export { TSAnyKeyword as tSAnyKeyword };
|
export { TSAnyKeyword as tSAnyKeyword };
|
||||||
|
export function TSUnknownKeyword(...args: Array<any>): Object {
|
||||||
|
return builder("TSUnknownKeyword", ...args);
|
||||||
|
}
|
||||||
|
export { TSUnknownKeyword as tsUnknownKeyword };
|
||||||
|
export { TSUnknownKeyword as tSUnknownKeyword };
|
||||||
export function TSNumberKeyword(...args: Array<any>): Object {
|
export function TSNumberKeyword(...args: Array<any>): Object {
|
||||||
return builder("TSNumberKeyword", ...args);
|
return builder("TSNumberKeyword", ...args);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -128,6 +128,7 @@ defineType("TSIndexSignature", {
|
|||||||
|
|
||||||
const tsKeywordTypes = [
|
const tsKeywordTypes = [
|
||||||
"TSAnyKeyword",
|
"TSAnyKeyword",
|
||||||
|
"TSUnknownKeyword",
|
||||||
"TSNumberKeyword",
|
"TSNumberKeyword",
|
||||||
"TSObjectKeyword",
|
"TSObjectKeyword",
|
||||||
"TSBooleanKeyword",
|
"TSBooleanKeyword",
|
||||||
|
|||||||
@ -2406,6 +2406,20 @@ export function isTSAnyKeyword(node: Object, opts?: Object): boolean {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
export function isTSUnknownKeyword(node: Object, opts?: Object): boolean {
|
||||||
|
if (!node) return false;
|
||||||
|
|
||||||
|
const nodeType = node.type;
|
||||||
|
if (nodeType === "TSUnknownKeyword") {
|
||||||
|
if (typeof opts === "undefined") {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return shallowEqual(node, opts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
export function isTSNumberKeyword(node: Object, opts?: Object): boolean {
|
export function isTSNumberKeyword(node: Object, opts?: Object): boolean {
|
||||||
if (!node) return false;
|
if (!node) return false;
|
||||||
|
|
||||||
@ -4116,6 +4130,7 @@ export function isTSType(node: Object, opts?: Object): boolean {
|
|||||||
if (
|
if (
|
||||||
nodeType === "TSType" ||
|
nodeType === "TSType" ||
|
||||||
"TSAnyKeyword" === nodeType ||
|
"TSAnyKeyword" === nodeType ||
|
||||||
|
"TSUnknownKeyword" === nodeType ||
|
||||||
"TSNumberKeyword" === nodeType ||
|
"TSNumberKeyword" === nodeType ||
|
||||||
"TSObjectKeyword" === nodeType ||
|
"TSObjectKeyword" === nodeType ||
|
||||||
"TSBooleanKeyword" === nodeType ||
|
"TSBooleanKeyword" === nodeType ||
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user