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() {
|
||||
this.word("any");
|
||||
}
|
||||
export function TSUnknownKeyword() {
|
||||
this.word("unknown");
|
||||
}
|
||||
export function TSNumberKeyword() {
|
||||
this.word("number");
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
let a: any;
|
||||
let un: unknown;
|
||||
let b: boolean;
|
||||
let ne: never;
|
||||
let nul: null;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
let a: any;
|
||||
let un: unknown;
|
||||
let b: boolean;
|
||||
let ne: never;
|
||||
let nul: null;
|
||||
|
||||
@ -57,6 +57,8 @@ function keywordTypeFromName(
|
||||
return "TSSymbolKeyword";
|
||||
case "undefined":
|
||||
return "TSUndefinedKeyword";
|
||||
case "unknown":
|
||||
return "TSUnknownKeyword";
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@ -1119,6 +1119,7 @@ export type TsTypeBase = NodeBase;
|
||||
|
||||
export type TsKeywordTypeType =
|
||||
| "TSAnyKeyword"
|
||||
| "TSUnknownKeyword"
|
||||
| "TSNumberKeyword"
|
||||
| "TSObjectKeyword"
|
||||
| "TSBooleanKeyword"
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
let a: any;
|
||||
let un: unknown;
|
||||
let b: boolean;
|
||||
let ne: never;
|
||||
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 {
|
||||
assert("TSAnyKeyword", node, opts);
|
||||
}
|
||||
export function assertTSUnknownKeyword(node: Object, opts?: Object = {}): void {
|
||||
assert("TSUnknownKeyword", node, opts);
|
||||
}
|
||||
export function assertTSNumberKeyword(node: Object, opts?: Object = {}): void {
|
||||
assert("TSNumberKeyword", node, opts);
|
||||
}
|
||||
|
||||
@ -698,6 +698,11 @@ export function TSAnyKeyword(...args: Array<any>): Object {
|
||||
}
|
||||
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 {
|
||||
return builder("TSNumberKeyword", ...args);
|
||||
}
|
||||
|
||||
@ -128,6 +128,7 @@ defineType("TSIndexSignature", {
|
||||
|
||||
const tsKeywordTypes = [
|
||||
"TSAnyKeyword",
|
||||
"TSUnknownKeyword",
|
||||
"TSNumberKeyword",
|
||||
"TSObjectKeyword",
|
||||
"TSBooleanKeyword",
|
||||
|
||||
@ -2406,6 +2406,20 @@ export function isTSAnyKeyword(node: Object, opts?: Object): boolean {
|
||||
|
||||
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 {
|
||||
if (!node) return false;
|
||||
|
||||
@ -4116,6 +4130,7 @@ export function isTSType(node: Object, opts?: Object): boolean {
|
||||
if (
|
||||
nodeType === "TSType" ||
|
||||
"TSAnyKeyword" === nodeType ||
|
||||
"TSUnknownKeyword" === nodeType ||
|
||||
"TSNumberKeyword" === nodeType ||
|
||||
"TSObjectKeyword" === nodeType ||
|
||||
"TSBooleanKeyword" === nodeType ||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user