Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JSDoc类型注释键入导入的对象?_Javascript_Typescript_Visual Studio Code_Typescript Typings_Jsdoc - Fatal编程技术网

Javascript 如何使用JSDoc类型注释键入导入的对象?

Javascript 如何使用JSDoc类型注释键入导入的对象?,javascript,typescript,visual-studio-code,typescript-typings,jsdoc,Javascript,Typescript,Visual Studio Code,Typescript Typings,Jsdoc,我有以下代码: // NoteList.server.js import {prisma} from './db.server'; // how to type this using JSDoc??? import SidebarNote from './SidebarNote'; export default function NoteList({searchText}) { const notes = prisma.note.findMany({ where: {

我有以下代码:

// NoteList.server.js

import {prisma} from './db.server'; // how to type this using JSDoc???
import SidebarNote from './SidebarNote';

export default function NoteList({searchText}) {
  const notes = prisma.note.findMany({
    where: {
      title: {
        contains: searchText ?? undefined,
      },
    },
  });

  // Now let's see how the Suspense boundary above lets us not block on this.
  // fetch('http://localhost:4000/sleep/3000');

  return notes.length > 0 ? (
    <ul className="notes-list">
      {notes.map((note) => (
        <li key={note.id}>
          <SidebarNote note={note} />
        </li>
      ))}
    </ul>
  ) : (
    <div className="notes-empty">
      {searchText
        ? `Couldn't find any notes titled "${searchText}".`
        : 'No notes created yet!'}{' '}
    </div>
  );
}
但是,我现在很难在导入时将
PrismaClient
类型分配给
prisma
对象。我知道在将类型传递到函数时如何将其分配给对象/值:

/**
 * @param {PrismaClient} prisma - My `PrismaClient` instance
 */
function foo(prisma) {
  // I now get autocompletion on the `prisma` instance
  // because VS Code knows it's of type `PrismaClient`
}
但我不知道如何做同样的进口。有人能帮我吗?这里有一个链接,可以链接到,以防有所帮助

编辑:另外,为了添加更多信息,将从此文件导入
prisma
实例:

// db.server.js

import {PrismaClient} from 'react-prisma';

export const prisma = new PrismaClient();
您还可以在此处找到带有此示例代码的回购协议:

由于@Mino的建议,我在导出时也尝试了这一点,但我仍然没有得到任何自动完成:

/**
 * @typedef { import("@prisma/client").PrismaClient } PrismaClient
 */
import {PrismaClient} from 'react-prisma';


/**
 * @const {PrismaClient}
 */
export const prisma = new PrismaClient();

您能否共享导出
prisma
对象的
/db.server
的内容?
因为如果导出在该文件中输入正确,那么导入应该不做任何事情就可以工作。

多亏了@Mino的建议,我解决了这个问题,宁愿查看导出对象的文件,而不是专注于输入导入。我通过将其添加到
db.server.js
文件中获得自动完成:

/**
 * @typedef { import("@prisma/client").PrismaClient } PrismaClient
 */
import {PrismaClient} from 'react-prisma';


/**
 * @type {PrismaClient}
 */
export const prisma = new PrismaClient();


哈,说得好!我在问题中加入了出口。谢谢。当您希望自动完成功能正常工作时,请确保正确安装了节点模块。
/**
 * @typedef { import("@prisma/client").PrismaClient } PrismaClient
 */
import {PrismaClient} from 'react-prisma';


/**
 * @type {PrismaClient}
 */
export const prisma = new PrismaClient();