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();