在VSCode中获取Javascript类型提示而不导入,这将导致循环依赖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VSCode中获取Javascript类型提示而不导入,这将导致循环依赖相关的知识,希望对你有一定的参考价值。

我有一种情况,类A创建B的实例,并发送自己作为参考之一。即

a.js

import B from './b';
class A {
    constructor() {
        this.b = new B(this);
    }
}

b.js

class B {
    /**
     * @param {A} aInstance - The instance of A.
     */
    constructor(AInstance) {
        this.a = AInstance;
    }
}

我想在b.js中导入A以在VSCode中获取类型提示,但这会创建循环依赖关系。有没有办法在不导入的情况下获得类型提示?

答案

在使用TypeScript 2.8进行IntelliSense的VS Code 1.22中并不容易。但是,应该在VS Code 1.24中选择的TypeScript 2.9增加了对jsdocs中类型导入的支持:import('path/to/module')

a.js

import B from './b';
export class A {
    constructor() {
        this.b = new B(this);
    }
}

b.js

export class B {
    /**
     * @param {import('./a').A} aInstance - The instance of A.
     */
    constructor(AInstance) {
        this.a = AInstance;
    }
}

以上是关于在VSCode中获取Javascript类型提示而不导入,这将导致循环依赖的主要内容,如果未能解决你的问题,请参考以下文章

vscode 在 JavaScript 文件中使用类型化定义

vscode提示stm32代码中的遇到变量不是类型名

如何在 vscode 中使用自己的 javascript 文件获取智能感知

如何在 VSCode JavaScript 中获取 HTML 元素 ID 以自动完成?

[vscode] 代码提示不能默认选中第一项问题

为啥VSCode里面HTML没有CSS和JS提示了