如何为这个javascript库编写typescript定义文件?
我需要调用以下javascript:如何为这个javascript库编写typescript定义文件?,javascript,typescript,definition,Javascript,Typescript,Definition,我需要调用以下javascript: var jslib = jslib || (function() { var publicMethods = { encrypt: function (algorithm, keyHandle, buffer) { // implementation } }; return publicMethods; })(); 我是typescript新手,你能分享一下上面javascript的typescript定义和调用模式吗 提
var jslib = jslib || (function() {
var publicMethods = {
encrypt: function (algorithm, keyHandle, buffer) {
// implementation
}
};
return publicMethods;
})();
我是typescript新手,你能分享一下上面javascript的typescript定义和调用模式吗
提前谢谢。我假设以下目录结构
├── lib
│ ├── jslib.d.ts
│ └── jslib.js
├── src
└── t.ts
jslib.js
var jslib = jslib || (function () {
var publicMethods = {
encript: function () {
return
}
};
return publicMethods;
})();
module.exports = jslib;
jslib.d.ts
declare namespace jslib {
function encript(): void;
}
export = jslib;
t、 ts
使用node\u modules/.bin/tsc--traceResolution检查
======== Resolving module '../lib/jslib' from '/home/zjk/dev/webnote/ts1/src/t.ts'. ========
Explicitly specified module resolution kind: 'NodeJs'.
Loading module as file / folder, candidate module location '/home/zjk/dev/webnote/ts1/lib/jslib'.
File '/home/zjk/dev/webnote/ts1/lib/jslib.ts' does not exist.
File '/home/zjk/dev/webnote/ts1/lib/jslib.tsx' does not exist.
File '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts' exist - use it as a name resolution result.
Resolving real path for '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts', result '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts'
======== Module name '../lib/jslib' was successfully resolved to '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts'. ========
将jslib.js
和jslib.d.ts
放在同一个目录中是至关重要的。谢谢zjk。我有两个愚蠢的问题1)在javascript中,如何理解var jslib=jslib | | function(),我不明白为什么jslib需要在回答中的“=”2)之后再次出现,const jslib是什么意思?对不起,我对这两个脚本都是绿色的..@SkyLine。好问题!我不是专家。我会更新我的答案我还没有尝试我的答案。我稍后会展开它。至于var jslib=jslib | | function()
,如果已经定义了整个jslib,它可以阻止重新定义。谢谢@zjk。我期待着你的更新:)@SkyLine我必须承认,我对这个问题的理解还不足以回答这个问题。抱歉耽搁了。
======== Resolving module '../lib/jslib' from '/home/zjk/dev/webnote/ts1/src/t.ts'. ========
Explicitly specified module resolution kind: 'NodeJs'.
Loading module as file / folder, candidate module location '/home/zjk/dev/webnote/ts1/lib/jslib'.
File '/home/zjk/dev/webnote/ts1/lib/jslib.ts' does not exist.
File '/home/zjk/dev/webnote/ts1/lib/jslib.tsx' does not exist.
File '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts' exist - use it as a name resolution result.
Resolving real path for '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts', result '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts'
======== Module name '../lib/jslib' was successfully resolved to '/home/zjk/dev/webnote/ts1/lib/jslib.d.ts'. ========