从具有导入的类型定义中对VS Code中的javascript文件进行智能感知

问题描述 投票:1回答:1

家伙。

我正在尝试在d.ts文件中声明自定义类型,并在javascript文件中的jsdoc注释中使用它以在VS Code中具有智能感知。

示例如下:

文件类型.d .ts

import { Request } from "express";

declare interface IRouter {
    request: Request,
    someProp: string

    ....
}

当我试图在@type中使用它时,intellisense不起作用。

例如,Sommephilis

/// <reference path="types.d.ts"/>
/**
 * @type {IRouter}
 */
 let customRouter;

因此,当我使用变量“customRouter”时,VSCode不提供有关可能属性的智能感知。但是,如果我将从d.ts文件中删除导入 - 那么一切正常。

在这种情况下会出现什么问题?

先感谢您。

javascript node.js typescript visual-studio-code
1个回答
0
投票

添加import使您的d.ts文件成为一个模块,您将无法再获取像IRounter这样的环境类型。

为了解决这个问题,要么:

  1. 在js文件中添加导入: import { IRouter } from "./types"; /** * @type {IRouter} */ let customRouter;
  2. 或者在d.ts中使用declare global: import { Request } from "express"; declare global { export interface IRouter { request: Request, someProp: string; } }
© www.soinside.com 2019 - 2024. All rights reserved.