gpt4 book ai didi

javascript - 如何将 @types/module 与为其编写类型的 npm 模块结合使用?

转载 作者:行者123 更新时间:2023-12-03 01:38:36 24 4
gpt4 key购买 nike

这只是我的项目中的一些模块的示例。

有一个https://github.com/mapbox/polylabel npm 模块 polylabel 的 TypeScript 类型定义。现在,当我安装 npm install --save @types/polylabel 时,我得到了类型,但是当我安装 npm install --save polylabel 时,我自己得到了 npm 模块。

所以我的问题是如何导入 polylabel 但让该模块使用来自 @types/polylabel 的 TypeScript 类型定义?示例:

import polylabel from "polylabel";

export default class SomeClass extends Base {

console.log(polylabel(coordinates, 1.0))
}

现在这将不起作用,因为 typescript 将尝试导入定义的函数,而该函数本身没有模块的功能。

我应该将 module it self 包含在 webpack it self 中还是有其他方法可以做到这一点? Webpack 部分:

new webpack.ProvidePlugin({
polylabel: 'polylabel'
}),

我希望这个问题清楚地说明了我正在尝试/需要解决的问题。

最佳答案

只要你有你的tsconfig.json设置引用 @types目录,它将始终使用可用的类型。有时 npm 包会与类型定义一起打包,但在很多情况下,它们不会。这时你需要运行 npn install @types/<module> --save-dev

示例 tsconfig.json :

{
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types" // <-- This guy
],
"lib": [
"es2016",
"dom"
]
},
"exclude": [
"node_modules",
"e2e"
]
}

关于javascript - 如何将 @types/module 与为其编写类型的 npm 模块结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50957624/

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