在TypeScript中声明JavaScript扩展函数
我有用JavaScript编写的这种types的Node.js模块:
function main(options) { return "some string"; } main.methodName = function () { // implementation; }; main.objectName = { // a namespace; }; main.propertyName = 123; module.exports = main;
在TypeScript中声明这样一个接口的正确方法是什么?
澄清
我正在问如何在TypeScript中为现有的Node.js模块正确声明这样一个接口,所以它可以在TypeScript文件中正确使用,而不是如何在TypeScript中重新实现这样的接口。
UPDATE
根据@toskv的build议,我添加了以下界面:
declare module "my-module" { // Default library interface interface main { (options?:{}):string, methodName():any, propertyName:any, objectName:Object } export default main; }
但是如果我这样使用它:
import * as myModule from "my-module"; var s = myModule({});
然后我得到错误Cannot invoke an expression whose type lacks a call signature.
。
任何想法为什么?
描述该代码的TypeScript接口是:
interface MainIf { (options) : string ; // the main function methodName() : any; propertyName: number; objectName: Object; }
- 如何在JavaScript中使用types没有打字稿?
- 使用requirejs加载一个带有几个类的文件(grunt-concat)
- 在NextJs中访问服务器端代码中的静态资源?
- 如何使用express和angular 2(打字稿)在待办事项列表中编辑标题
- 如何在一个项目中设置Angular 2,Node(Hapi.js)和TypeScript?
- 如果有“import x = require(”x“);”
- 在使用Webpack构buildAurelia应用程序期间,找不到名称空间“Webpack”
- Angular2与TypeScript:声明预期编译器错误@component后
- 如何将共享依赖的多个打字稿文件编译成一个单独的javascript文件?