gpt4 book ai didi

javascript - 在 TypeScript 中声明 JavaScript 扩展函数

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

我有这种用 JavaScript 编写的 Node.js 模块:

function main(options) {
return "some string";
}

main.methodName = function () {
// implementation;
};

main.objectName = {
// a namespace;
};

main.propertyName = 123;

module.exports = main;

在 TypeScript 中声明此类接口(interface)的正确方法是什么?

澄清

我问的是如何在 TypeScript 中为现有的 Node.js 模块正确声明这样的接口(interface),以便它可以从 TypeScript 文件中正确使用,而不是如何在 TypeScript 中重新实现这样的接口(interface)。

更新

根据@toskv 的建议,我添加了以下接口(interface):

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({});

然后我收到错误无法调用类型缺少调用签名的表达式。

知道为什么吗?

最佳答案

描述该代码的 TypeScript 接口(interface)将是:

interface MainIf {
(options) : string ; // the main function
methodName() : any;
propertyName: number;
objectName: Object;
}

关于javascript - 在 TypeScript 中声明 JavaScript 扩展函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566391/

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