我正在学习如何声明应用程序范围的全局常量。参考这篇文章here的答案Dominic Barnes
,为标题为constants.js -- Better
的代码.我复制并粘贴了它,如下所示:
constants.js
function define(name, value) {
Object.defineProperty(exports, name, {
value: value,
enumerable: true
});
}
define("PI", 3.14);
在app.js中调用constants.js
import constants from './constants/constants';
var req=https.get('https://xx/xx/getDistanceFromOriginToDestination/30.976639,30.056021,30.97775,30.033333',options, callback);
constants. //<==========????
req.on('error', (e) => {
console.error("problem with request:", e);
});
req.end();
问题是,在Dominic Barnes
的帖子中,他可以访问PI
,如下所示,如他的回答所示:
var constants = require("./constants");
console.log(constants.PI); // 3.14
constants.PI = 5;
console.log(constants.PI); // still 3.14
在我的例子中,VS-Codes的自动完成没有显示任何从constants.js
派生的东西,或者换句话说,我不能访问PI
。请让我知道我错过了什么,以chieve访问常量PI
在constants.js
中声明
1条答案
按热度按时间5cg8jx4n1#
VSCode使用Typescript类型信息来提供智能感知,如自动完成和参数提示。
您可以为
constants
JavaScript模块创建自己的module type descriptor。在constants.js
旁边添加一个新的constants.d.ts
文件,内容如下您可以在下面的CodeSandbox示例中看到结果
如果没有
.d.ts
描述符,编辑器将无法识别constants.PI
但是一旦启用了描述符,您就会得到自动完成和类型提示
请注意,在这两种情况下,代码都会编译并显示正确的值。