gpt4 book ai didi

javascript - 在 JavaScript VSCode 项目中添加自定义类型文件

转载 作者:行者123 更新时间:2023-12-03 01:01:21 26 4
gpt4 key购买 nike

问题

我正在使用 VSCode 开发 JavaScript 项目。我正在使用 UMD 设计模式,vscode intellisense 无法识别来自另一个文件的模块的导出。我将所有声明添加到名为 globals.d.ts 的文件中。不幸的是,我找不到从 JavaScript 文件加载 globals.d.ts 声明的方法。

示例模块声明

export namespace ModuleName {
export interface Item {
toString(): string;
property: string;
name: string;
}
}

示例 JavaScript 文件

(function (global, factory) {
"use strict";
if (typeof ModuleName === "undefined" && typeof require === "function") global.ModuleName = require("./mymodule.js");
if (typeof exports !== "undefined" && typeof module !== "undefined") factory(exports);
else factory(global.OtherModule = global.OtherModule || {});
})(this, (function (exports) {
"use strict";

function myMethod() {

}

exports.myMethod = myMethod;
return exports;
}));

我尝试了什么

我尝试使用 typings install "globals.d.ts" 创建了 typings 文件夹、typings.json 等。这只是在 VSCode 中打开类型文件然后关闭并重新打开应用程序后即可工作。只有当我保持输入文件打开时,这才有效。这不是添加接口(interface)声明的非常方便的方法。

关于 VSCode(8 个月前)

Version: 1.17.0
Shell: 1.7.7
Node: 7.9.0
Architecture: x64

关于 VSCode(现在)

Version: 1.24.1
Shell: 1.7.12
Node: 7.9.0
Architecture: x64

行为没有变化。

最佳答案

纯 Node.JS 解决方案

创建下一个文件(名称应该相同):

lib.js 
lib.d.ts

在 lib.js 中编写一些代码,比如说这个:

function whenDo(params) {
return params;
}

module.exports = whenDo;

在 lib.d.ts 中写下:

declare function wd(params: wd.Params): wd.Params;

declare namespace wd {
interface Params {
name: string;
}
}

export = wd;

然后,创建某个文件来使用新创建的函数并放置以下代码:

const wd = require('./lib/lib');

const opt = wd({name:'drag13'});
console.log(opt.name);

魔法就在这里,一切都运转良好。 enter image description here

代码从这里被盗:https://github.com/Drag13/WhenDo/blob/master/dts/index.d.ts

描述的方法here

关于javascript - 在 JavaScript VSCode 项目中添加自定义类型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com