Vigia

Nâng cấp eslint-scope từ 8.x lên 9.x

So sánh API công khai của eslint-scope 8.4.0 và 9.1.2, được tính tự động từ kiểu TypeScript. Chữ ký thay đổi là thay đổi có thể không tương thích, không phải điều chắc chắn.

Tóm tắt

Đường dẫn import bị xóa0
Export bị xóa0
Chữ ký thay đổi1
Thành viên lớp hoặc interface bị xóa4
Thành viên lớp hoặc interface thay đổi45
Mới bị ngừng hỗ trợ48
Thay đổi yêu cầu (engines, phụ thuộc peer)1
Export mới13

Export bị xóa

Không phát hiện.

Chữ ký thay đổi

exportTrướcSau
eslint-scope · Definitionclass({ type: "CatchClause"; node: ESTree.CatchClause; parent: null; } | { type: "ClassName"; node: any; parent: null; } | { type: "FunctionName"; node: any; parent: null; } | { type: "ImplicitGlobalVariable"; node: any; parent: null; } | { type: "ImportBinding"; node: any; parent: ESTree.ImportDeclaration; } | { type: "Parameter"; node: any; parent: null; } | { type: "Variable"; node: ESTree.VariableDeclarator; parent: ESTree.VariableDeclaration; }) & { name: ESTree.Identifier; index: number | null; kind: string | null; }

Thành viên lớp hoặc interface bị xóa

memberimportTrước
Scope.impliciteslint-scope{ left: TReference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; }
BlockScope.impliciteslint-scope{ left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; }
ModuleScope.impliciteslint-scope{ left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; }
FunctionScope.impliciteslint-scope{ left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; }

Thành viên lớp hoặc interface thay đổi

memberTrướcSau
Scope.seteslint.Scope.ScopeMap<string, TVariable>
Scope.typeeslint.Scope.Scope"function" | "module" | "block" | "catch" | "class" | "class-field-initializer" | "class-static-block" | "for" | "function-expression-name" | "global" | "switch" | "with"
Scope.taintsMap<string, Variable<Reference>>Map<string, TVariable>
Scope.resolve(ref: Reference, noChain?: boolean | undefined): void(ident: ESTree.Identifier): TReference | null
Scope.througheslint.Scope.ScopeTReference[]
Scope.constructor<TVariable extends Variable = Variable<Reference>, TReference extends Reference = Reference>(scopeManager: ScopeManager, type: string, upper: Scope<Variable<Reference>, Reference> | null, block: ESTree.Node, isMethodDefinition: boolean): Scope<TVariable, TReference><TVariable extends Variable = Variable<Reference>, TReference extends Reference = Reference>(scopeManager: ScopeManager, type: "function" | "module" | "block" | "catch" | "class" | "class-field-initializer" | "class-static-block" | "for" | "function-expression-name" | "global" | "switch" | "with", u…
Scope.variableScopeScope<TVariable, TReference>Scope<Variable<Reference>, Reference>
Variable.defseslint.Scope.Definition[]Definition[]
Reference.initbooleanboolean | undefined
Reference.isReadeslint.Scope.Reference(): boolean
Reference.isWriteeslint.Scope.Reference(): boolean
Reference.partialbooleanboolean | undefined
Reference.identifierESTree.Identifierany
Reference.constructor(identifier: ESTree.Identifier, scope: Scope<Variable<Reference>, Reference>, flag: number, writeExpr: any, maybeImplicitGlobal: boolean, partial: boolean, init: boolean): Reference(ident: any, scope: Scope<Variable<Reference>, Reference>, flag: number, writeExpr: any, maybeImplicitGlobal: { pattern: ESTree.Pattern; node: ESTree.Node; } | null, partial: boolean, init: boolean): Reference
BlockScope.seteslint.Scope.ScopeMap<string, Variable<Reference>>
BlockScope.resolve(ref: Reference, noChain?: boolean | undefined): void(ident: ESTree.Identifier): Reference | null
BlockScope.througheslint.Scope.ScopeReference[]
BlockScope.constructor(scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node): BlockScope(scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node): BlockScope
BlockScope.variableScopeBlockScopeScope<Variable<Reference>, Reference>
BlockScope.isThisMaterialized(): boolean(): true
BlockScope.functionExpressionScopebooleanfalse
BlockScope.isArgumentsMaterialized(): boolean(): true
GlobalScope.seteslint.Scope.ScopeMap<string, Variable<Reference>>
GlobalScope.resolve(ref: Reference, noChain?: boolean | undefined): void(ident: ESTree.Identifier): Reference | null
GlobalScope.througheslint.Scope.ScopeReference[]
GlobalScope.variableScopeGlobalScopeScope<Variable<Reference>, Reference>
GlobalScope.isThisMaterialized(): boolean(): true
GlobalScope.functionExpressionScopebooleanfalse
GlobalScope.isArgumentsMaterialized(): boolean(): true
ModuleScope.seteslint.Scope.ScopeMap<string, Variable<Reference>>
ModuleScope.resolve(ref: Reference, noChain?: boolean | undefined): void(ident: ESTree.Identifier): Reference | null
ModuleScope.througheslint.Scope.ScopeReference[]
ModuleScope.constructor(scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node): ModuleScope(scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node): ModuleScope
ModuleScope.variableScopeModuleScopeScope<Variable<Reference>, Reference>
ModuleScope.isThisMaterialized(): boolean(): true
ModuleScope.functionExpressionScopebooleanfalse
ModuleScope.isArgumentsMaterialized(): boolean(): true
ScopeManager.globalScopeGlobalScopeGlobalScope | null
FunctionScope.seteslint.Scope.ScopeMap<string, Variable<Reference>>
FunctionScope.resolve(ref: Reference, noChain?: boolean | undefined): void(ident: ESTree.Identifier): Reference | null
FunctionScope.througheslint.Scope.ScopeReference[]
FunctionScope.constructor(scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node, isMethodDefinition: boolean): FunctionScope(scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node, isMethodDefinition: boolean): FunctionScope
FunctionScope.variableScopeFunctionScopeScope<Variable<Reference>, Reference>
FunctionScope.functionExpressionScopebooleanfalse
AnalyzeOptions.childVisitorKeysany{ readonly [type: string]: readonly string[]; } | null | undefined

Mới bị ngừng hỗ trợ

export@deprecated
eslint-scope · Scope.taints—
eslint-scope · Scope.dynamic—
eslint-scope · Scope.resolve—
eslint-scope · Scope.isStatic—
eslint-scope · Scope.thisFound—
eslint-scope · Scope.isUsedName—
eslint-scope · Scope.isThisMaterialized—
eslint-scope · Scope.directCallToEvalScope—
eslint-scope · Scope.isArgumentsMaterialized—
eslint-scope · Variable.stack—
eslint-scope · Variable.tainted—
eslint-scope · Reference.partial—
eslint-scope · Reference.tainted—
eslint-scope · Reference.isStatic—
eslint-scope · BlockScope.taints—
eslint-scope · BlockScope.dynamic—
eslint-scope · BlockScope.resolve—
eslint-scope · BlockScope.isStatic—
eslint-scope · BlockScope.thisFound—
eslint-scope · BlockScope.isUsedName—
eslint-scope · BlockScope.directCallToEvalScope—
eslint-scope · GlobalScope.taints—
eslint-scope · GlobalScope.dynamic—
eslint-scope · GlobalScope.resolve—
eslint-scope · GlobalScope.isStatic—
eslint-scope · GlobalScope.thisFound—
eslint-scope · GlobalScope.isUsedName—
eslint-scope · GlobalScope.directCallToEvalScope—
eslint-scope · ModuleScope.taints—
eslint-scope · ModuleScope.dynamic—
eslint-scope · ModuleScope.resolve—
eslint-scope · ModuleScope.isStatic—
eslint-scope · ModuleScope.thisFound—
eslint-scope · ModuleScope.isUsedName—
eslint-scope · ModuleScope.directCallToEvalScope—
eslint-scope · ScopeManager.isModule—
eslint-scope · ScopeManager.acquireAll—
eslint-scope · ScopeManager.isImpliedStrict—
eslint-scope · ScopeManager.isStrictModeSupported—
eslint-scope · FunctionScope.taints—
eslint-scope · FunctionScope.dynamic—
eslint-scope · FunctionScope.resolve—
eslint-scope · FunctionScope.isStatic—
eslint-scope · FunctionScope.thisFound—
eslint-scope · FunctionScope.isUsedName—
eslint-scope · FunctionScope.isThisMaterialized—
eslint-scope · FunctionScope.directCallToEvalScope—
eslint-scope · FunctionScope.isArgumentsMaterialized—

Thay đổi yêu cầu (engines, phụ thuộc peer)

TrướcSau
engines.node^18.18.0 || ^20.9.0 || >=21.1.0^20.19.0 || ^22.13.0 || >=24
Export mới (13)
importexportkind
eslint-scopeversionvariable
eslint-scopeForScopeclass
eslint-scopeWithScopeclass
eslint-scopeCatchScopeclass
eslint-scopeClassScopeclass
eslint-scopeReferencerclass
eslint-scopeSwitchScopeclass
eslint-scopeJSXIdentifierinterface
eslint-scopePatternVisitorclass
eslint-scopeClassStaticBlockScopeclass
eslint-scopePatternVisitorCallbacktype
eslint-scopeClassFieldInitializerScopeclass
eslint-scopeFunctionExpressionNameScopeclass

Câu hỏi thường gặp

Nâng cấp eslint-scope từ 8 lên 9 có những thay đổi không tương thích nào?

Giữa eslint-scope 8.4.0 và 9.1.2, Vigia tìm thấy 0 export bị xóa, 1 chữ ký thay đổi và 49 thành viên lớp hoặc interface bị xóa hay thay đổi.

Những gì bị ngừng hỗ trợ trong eslint-scope 9?

48 export hoặc thành viên mới bị đánh dấu ngừng hỗ trợ trong eslint-scope 9.1.2.

Dành cho tác tử

GET https://vigia.coredls.cloud/v1/packages/npm/eslint-scope/upgrade?from=8.4.0&to=9.1.2