gpt4 book ai didi

javascript - typescript:如何扩展现有模块定义?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:58 25 4
gpt4 key购买 nike

我有一个为 extsting npm 包编写的声明文件,但似乎没有声明一种方法,我尝试声明它,但出现错误。请帮助我。

现有 d.ts 文件的结构:

declare module "mongoose" {
...
class Document {}
interface Document extends MongooseDocument, NodeJS.EventEmitter, ModelProperties {
increment(): this;
remove(fn?: (err: any, product: this) => void): Promise<this>;
...
}
}

我尝试添加到接口(interface)文档方法deleteOne。我的自定义.d.ts:

declare module "mongoose" {
interface Document {
deleteOne(fn?: (err: any, product: this) => void): Promise<this>;
}
}

但我仍然收到错误“类型上不存在属性‘deleteOne’”。

如果您需要,这是我的 tsconfig.json:

{
"compilerOptions": {
"module": "commonjs",
"removeComments": true,
"esModuleInterop": true,
"moduleResolution": "node",
"allowJs": true,
"allowSyntheticDefaultImports": true,
"pretty": true,
"resolveJsonModule": true,
"sourceMap": true,
"target": "ES2018",
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*"
]
}
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"dist",
"**/*.spec.ts"
]
}

我的 custom.d.ts 文件位于“src/”目录中。

最佳答案

好的!现在我知道这是 ts-node 的预期行为:https://github.com/TypeStrong/ts-node#missing-types

我已经在 tsconfig.json 中配置了路径设置,现在一切正常:

    "paths": {
"mongoose": ["src/custom.d.ts"],
"*": [
"node_modules/*"
]
}

关于javascript - typescript:如何扩展现有模块定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60046930/

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