TypeScript 请使用jsdoc编写标准导入,

a11xaf1n  于 6个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(61)

🔍 搜索词

ECMAScript模块导入jsdoc

✅ 可实现性检查清单

⭐ 建议

现在我可以使用以下方式在https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#import-types中输入一个 require 调用

/**
* @type {typeof import("./accounts").userAccount}
*/
var x = require("./accounts").userAccount;

但是当我的代码使用一个 import 语句时,我找不到一种方法来在模块解析找到匹配项时对它进行类型标注。
import { shortNameFromImport } from "textmodule"; 在之前的行中无法使用,因为这一行中没有 letconst

/** @type {import('textmodule')} */
import { shortNameFromImport } from "textmodule";

normal way 用于带有括号的变量类型标注的方法也不能使用,因为它不是有效的JS代码:

import { /** @type {import('textmodule')} */ (shortNameFromImport ) } from "textmodule";

这两种无括号的变体都不起作用...

import { /** @type {import('textmodule')} */ shortNameFromImport } from "textmodule";
import { shortNameFromImport /** @type {import('textmodule')} */ } from "textmodule";

📃 激励示例

在使用TypeScript代码时,我可以在 tsconfig.json 中的 path 做一些魔法操作。但我希望有一个仅支持JSDoc的解决方案。

💻 用例

如上所述

dw1jzc5e

dw1jzc5e1#

你能提供一些关于实际模块路径为何无法正常工作的信息吗?或者为什么指定 paths 不是一个合理的解决方案?

vc9ivgsu

vc9ivgsu2#

在我的使用场景中,我沿着这条路使用 importmap ,所以 TypeScript 本身找不到 .ts/.d.ts/.js 文件是完全可以接受的。
实际上,我为我们库支持 importmap 生成创建了一个 ts 和 js 示例。
我没有 jsconfig.json ,但可能应该有。
这个项目被打开是因为我在 TypeScript 类型与 jsdoc 功能之间的功能对等性方面遗漏了。
当我无法将 TS 指向一个 ts/js 文件时,创建一个 jsconfig.json 、添加 paths 以及可能创建一个 .d.ts 文件有点繁琐。

jjjwad0x

jjjwad0x3#

我对这个功能有些怀疑,因为我们已经能够在TS中实现这个功能,而不需要在配置之外进行操作——但我会将这个问题留给反馈。

相关问题