我正在使用.d.ts
文件的JavaScript项目中。这是我先前提出的问题的后续问题,因此您可以查看有关项目here的更多信息。
const
实现并在注释中使用@typeof ConstantImplementation
来临时解决此问题。请参见下面的示例:// Typings File
export namespace test {
export interface ITest {
foo: string;
bar: number;
}
export const Test: ITest;
}
// JS File if (undefined) var {Test: ITest} = require("globals.d.ts").test; // Above line shows `unused var error` /* @type {typeof ITest} */ var x = {}; x.foo = "hello"; x.bar = 3; // if I do `x.` intellisense should suggest `foo` and `bar`
我想知道是否有更好的方法来解决该问题,最好是一种不会引发错误的方法(使用eslint ignore line
不能解决问题。]澄清
此问题与从打字文件获取功能无关。纯粹是要使VSCode智能感知与类型接口一起使用。这是一张解释我想要的图像(圆圈内的两行):
test.d.ts
export namespace test {
export interface ITest {
foo: string;
bar: number;
}
}
test.js
/**
* @type {import("./test").test.ITest}
*/
let x;
x.
并且,智慧现在就起作用我发现的另一件事是,如果您将
jsconfig.json
与]相加>jsconfig.json
{
"compilerOptions": {
"checkJs": true
}
}
您的智慧将进一步提高
更新-1
如@nickzoum所指出,如果您按如下所示定义test.d.ts
export interface ITest {
foo: string;
bar: number;
}
export as namespace test;
然后,您还可以在JS中使用以下表单进行智能感知
/** @typedef {import("./test").ITest} ITest */
/** @type {ITest} */
var x = {};
x.
在运行时