gpt4 book ai didi

typescript : require statement not part of an import statement

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:06 28 4
gpt4 key购买 nike

typescript 版本 2.2.2

我在我的 UserRoutzr.ts 中写了这个要求

const users = <IUser[]> require(path.join(process.cwd() + "/data"));

TSLint 发出以下警告:

require statement not part of an import statement

如果我把它改成:

import users = <IUser[]> require(path.join(process.cwd() + "/data"));

然后它引发了一个错误:

TS1003 Identifier expected

我应该如何重写这个要求?感谢反馈

最佳答案

TypeScript 模块是 ES6 模块的一种实现。 ES6 模块是静态的。您的问题来自动态路径:path.join(process.cwd() + "/data")。编译器无法在编译时确定它是哪个模块,并且 linter 不喜欢导致 any 的原因。

您应该使用模块的静态路径。在编译时,TypeScript 解析它。它会影响到 users 的正确导出类型 (IUser[])。

import users = require("./yourModuleThatExportsUsers");

注意:如果您的模块 data 只包含数据,您可以考虑将其更改为 JSON 文件,可以加载(Node.js)或捆绑(Webpack)。

更新(自 2019 年 5 月起)——也可以使用 dynamic import , TypeScript 接受静态和动态路径:

const users = await import("./yourModuleThatExportsUsers");

另请参阅:TypeScript 2.4 Release Notes

关于 typescript : require statement not part of an import statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43112619/

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