@@ -144,9 +144,7 @@ export function dts(): Plugin {
144144
145145 const original = s . sliceNode ( node )
146146 const deps = collectDependencies ( node )
147- const depsString = deps
148- . map ( ( node ) => `() => ${ s . sliceNode ( node ) } ` )
149- . join ( ', ' )
147+ const depsString = stringifyDependencies ( s , deps )
150148 const isType =
151149 node . type . startsWith ( 'TS' ) && node . type !== 'TSDeclareFunction'
152150 const needDeclare =
@@ -253,9 +251,7 @@ export function dts(): Plugin {
253251
254252 const raw = s . sliceNode ( node )
255253 const deps = collectDependencies ( node )
256- const depsString = deps
257- . map ( ( node ) => `() => ${ s . sliceNode ( node ) } ` )
258- . join ( ', ' )
254+ const depsString = stringifyDependencies ( s , deps )
259255 const symbolId = register ( raw , decl . id , deps , node , {
260256 isType : false ,
261257 needDeclare : ! node . declare ,
@@ -271,13 +267,13 @@ function collectDependencies(node: Node): (Node & Span)[] {
271267 enter ( node : Node ) {
272268 if ( node . type === 'TSInterfaceDeclaration' && node . extends ) {
273269 for ( const heritage of node . extends || [ ] ) {
274- deps . add ( heritage . expression )
270+ addDependency ( heritage . expression )
275271 }
276272 } else if ( node . type === 'ClassDeclaration' ) {
277- if ( node . superClass ) deps . add ( node . superClass )
273+ if ( node . superClass ) addDependency ( node . superClass )
278274 if ( node . implements ) {
279275 for ( const implement of node . implements ) {
280- deps . add ( implement . expression )
276+ addDependency ( implement . expression )
281277 }
282278 }
283279 } else if (
@@ -288,15 +284,26 @@ function collectDependencies(node: Node): (Node & Span)[] {
288284 node . key . type === 'MemberExpression' ) &&
289285 node . computed
290286 ) {
291- deps . add ( node . key )
287+ addDependency ( node . key )
292288 } else if ( node . type === 'TSTypeReference' ) {
293- deps . add ( node . typeName )
289+ addDependency ( node . typeName )
294290 } else if ( node . type === 'TSTypeQuery' ) {
295- deps . add ( node . exprName )
291+ addDependency ( node . exprName )
296292 }
297293 } ,
298294 } )
299295 return Array . from ( deps )
296+
297+ function addDependency ( node : Node & Span ) {
298+ if ( node . type === 'Identifier' && node . name === 'this' ) {
299+ return
300+ }
301+ deps . add ( node )
302+ }
303+ }
304+
305+ function stringifyDependencies ( s : MagicStringAST , deps : Node [ ] ) {
306+ return deps . map ( ( node ) => `() => ${ s . sliceNode ( node ) } ` ) . join ( ', ' )
300307}
301308
302309// patch `let x = 1;` to `type x: 1;`
0 commit comments