“NodeRequire”类型上不存在属性“确保”
Posted
技术标签:
【中文标题】“NodeRequire”类型上不存在属性“确保”【英文标题】:Property 'ensure' does not exist on type 'NodeRequire' 【发布时间】:2017-06-06 02:24:17 【问题描述】:我正在尝试 webpack 2 代码拆分。
根据这个文档:https://webpack.js.org/guides/code-splitting-require/
以下代码应将 some.css 包含到名为“something”的新块中
require.ensure([], function(require)
require('some.css');
, 'something');
但是当我运行它时,我得到了这个错误:
ERROR in ./src/index.ts
(4,9): error TS2339: Property 'ensure' does not exist on type 'NodeRequire'.
关于如何解决它的任何想法? 谢谢
【问题讨论】:
我也有同样的问题。你找到解决办法了吗? 【参考方案1】:我解决这个问题的方法是创建我自己的接口 - WebpackRequire
- 它扩展了 NodeRequire
和 ensure
1。
interface WebpackRequire extends NodeRequire
ensure(
dependencies: string[],
callback: (require: WebpackRequire) => void,
errorCallback?: (error: Error) => void,
chunkName?: string
): void;
;
如果您只有一个 require.ensure
实例,则可以使用 (require as WebpackRequire).ensure
将其类型转换为 WebpackRequire
,但由于我在一个模块中多次使用它,因此我创建了本地 require
在模块的顶部范围内,将类型转换为 WebpackRequire
,如下所示:
const require: WebpackRequire = (window as any).require;
1我从Webpack docs得到ensure
的类型
【讨论】:
【参考方案2】:我需要一个 javascript 文档,然后该文档就完成了。不完全是最好的解决方案,但它确实有效
【讨论】:
以上是关于“NodeRequire”类型上不存在属性“确保”的主要内容,如果未能解决你的问题,请参考以下文章