add declare to class properties type annotations (#12257)

* add declare to class properties type annotations

* chore: use preset-flow
This commit is contained in:
Huáng Jùnliàng
2020-10-27 10:05:01 -04:00
committed by GitHub
parent 9eb661b285
commit ea2892fefc
14 changed files with 70 additions and 94 deletions

View File

@@ -33,10 +33,10 @@ export default class Printer {
this._buf = new Buffer(map);
}
format: Format;
declare format: Format;
inForStatementInitCounter: number = 0;
_buf: Buffer;
declare _buf: Buffer;
_printStack: Array<Node> = [];
_indent: number = 0;
_insideAux: boolean = false;

View File

@@ -98,17 +98,17 @@ export default class ImportInjector {
/**
* The path used for manipulation.
*/
_programPath: NodePath;
declare _programPath: NodePath;
/**
* The scope used to generate unique variable names.
*/
_programScope;
declare _programScope;
/**
* The file used to inject helpers and resolve paths.
*/
_hub;
declare _hub;
/**
* The default options to use with this instance when imports are added.

View File

@@ -272,14 +272,14 @@ export default class ReplaceSupers {
this.opts = opts;
}
file: HubInterface;
isDerivedConstructor: boolean;
isLoose: boolean;
isPrivateMethod: boolean;
isStatic: boolean;
methodPath: NodePath;
opts: ReplaceSupersOptions;
superRef: Object;
declare file: HubInterface;
declare isDerivedConstructor: boolean;
declare isLoose: boolean;
declare isPrivateMethod: boolean;
declare isStatic: boolean;
declare methodPath: NodePath;
declare opts: ReplaceSupersOptions;
declare superRef: Object;
getObjectRef() {
return t.cloneNode(this.opts.objectRef || this.opts.getObjectRef());

View File

@@ -10,23 +10,23 @@ import type ProductionParameterHandler from "../util/production-parameter";
export default class BaseParser {
// Properties set by constructor in index.js
options: Options;
inModule: boolean;
scope: ScopeHandler<*>;
classScope: ClassScopeHandler;
prodParam: ProductionParameterHandler;
expressionScope: ExpressionScopeHandler;
plugins: PluginsMap;
filename: ?string;
declare options: Options;
declare inModule: boolean;
declare scope: ScopeHandler<*>;
declare classScope: ClassScopeHandler;
declare prodParam: ProductionParameterHandler;
declare expressionScope: ExpressionScopeHandler;
declare plugins: PluginsMap;
declare filename: ?string;
sawUnambiguousESM: boolean = false;
ambiguousScriptDifferentAst: boolean = false;
// Initialized by Tokenizer
state: State;
declare state: State;
// input and length are not in state as they are constant and we do
// not want to ever copy them, which happens if state gets cloned
input: string;
length: number;
declare input: string;
declare length: number;
hasPlugin(name: string): boolean {
return this.plugins.has(name);

View File

@@ -101,11 +101,11 @@ export class Token {
this.loc = new SourceLocation(state.startLoc, state.endLoc);
}
type: TokenType;
value: any;
start: number;
end: number;
loc: SourceLocation;
declare type: TokenType;
declare value: any;
declare start: number;
declare end: number;
declare loc: SourceLocation;
}
// ## Tokenizer

View File

@@ -23,7 +23,7 @@ type raiseFunction = (number, string, ...any) => void;
export default class ClassScopeHandler {
stack: Array<ClassScope> = [];
raise: raiseFunction;
declare raise: raiseFunction;
undefinedPrivateNames: Map<string, number> = new Map();
constructor(raise: raiseFunction) {

View File

@@ -39,8 +39,8 @@ type raiseFunction = (number, string, ...any) => void;
// current scope in order to detect duplicate variable names.
export default class ScopeHandler<IScope: Scope = Scope> {
scopeStack: Array<IScope> = [];
raise: raiseFunction;
inModule: boolean;
declare raise: raiseFunction;
declare inModule: boolean;
undefinedExports: Map<string, number> = new Map();
undefinedPrivateNames: Map<string, number> = new Map();

View File

@@ -11,10 +11,10 @@ export default class TraversalContext {
this.opts = opts;
}
parentPath: NodePath;
scope;
state;
opts;
declare parentPath: NodePath;
declare scope;
declare state;
declare opts;
queue: ?Array<NodePath> = null;
/**

View File

@@ -31,42 +31,30 @@ export default class NodePath {
constructor(hub: HubInterface, parent: Object) {
this.parent = parent;
this.hub = hub;
this.contexts = [];
this.data = null;
// this.shouldSkip = false; this.shouldStop = false; this.removed = false;
this._traverseFlags = 0;
this.state = null;
this.opts = null;
this.skipKeys = null;
this.parentPath = null;
this.context = null;
this.container = null;
this.listKey = null;
this.key = null;
this.node = null;
this.scope = null;
this.type = null;
}
parent: Object;
hub: HubInterface;
contexts: Array<TraversalContext>;
data: Object;
shouldSkip: boolean;
shouldStop: boolean;
removed: boolean;
state: any;
opts: ?Object;
_traverseFlags: number;
skipKeys: ?Object;
parentPath: ?NodePath;
context: TraversalContext;
container: ?Object | Array<Object>;
listKey: ?string;
key: ?string;
node: ?Object;
scope: Scope;
type: ?string;
declare parent: Object;
declare hub: HubInterface;
declare data: Object;
declare context: TraversalContext;
declare scope: Scope;
contexts: Array<TraversalContext> = [];
state: any = null;
opts: ?Object = null;
// this.shouldSkip = false; this.shouldStop = false; this.removed = false;
_traverseFlags: number = 0;
skipKeys: ?Object = null;
parentPath: ?NodePath = null;
container: ?Object | Array<Object> = null;
listKey: ?string = null;
key: ?string = null;
node: ?Object = null;
type: ?string = null;
static get({ hub, parentPath, parent, container, listKey, key }): NodePath {
if (!hub && parentPath) {

View File

@@ -18,26 +18,19 @@ export default class Binding {
this.path = path;
this.kind = kind;
this.constantViolations = [];
this.constant = true;
this.referencePaths = [];
this.referenced = false;
this.references = 0;
this.clearValue();
}
constantViolations: Array<NodePath>;
constant: boolean;
constantViolations: Array<NodePath> = [];
constant: boolean = true;
referencePaths: Array<NodePath>;
referenced: boolean;
references: number;
referencePaths: Array<NodePath> = [];
referenced: boolean = false;
references: number = 0;
hasDeoptedValue: boolean;
hasValue: boolean;
value: any;
declare hasDeoptedValue: boolean;
declare hasValue: boolean;
declare value: any;
deoptValue() {
this.clearValue();

View File

@@ -37,9 +37,9 @@ export default class Renamer {
this.binding = binding;
}
oldName: string;
newName: string;
binding: Binding;
declare oldName: string;
declare newName: string;
declare binding: Binding;
maybeConvertFromExportDeclaration(parentDeclar) {
const maybeExportDeclar = parentDeclar.parentPath;