如何为这个 javascript 库编写打字稿定义文件?
how to write typescript definition file for this javascript library?
我需要调用以下 javascript:
var jslib = jslib || (function() {
var publicMethods = {
encrypt: function (algorithm, keyHandle, buffer) {
// implementation
}
};
return publicMethods;
})();
我是打字稿的新手,能否请您分享上面 javascript 和调用模式的打字稿定义是什么样的?
提前致谢。
我假设以下目录结构
├── 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
import jslib = require('../lib/jslib');
jslib.encript();
检查node_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
放在同一个目录下。
我需要调用以下 javascript:
var jslib = jslib || (function() {
var publicMethods = {
encrypt: function (algorithm, keyHandle, buffer) {
// implementation
}
};
return publicMethods;
})();
我是打字稿的新手,能否请您分享上面 javascript 和调用模式的打字稿定义是什么样的?
提前致谢。
我假设以下目录结构
├── 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
import jslib = require('../lib/jslib');
jslib.encript();
检查node_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
放在同一个目录下。