导入整个文件的问题,例如 parameters.js

Issue with importing entire file such as parameters.js

我最近不得不处理以下问题:

TS2339:属性 'activityTime' 在类型 'typeof import...'

上不存在

在我们的项目中,我们通常将 parameters.js 导入如下:

从 'parameters'

导入 * 作为参数

但是 parameters.js 保存在本地,并不总是包含可选配置。所以下面的代码只是被标记:

if (params.activityTime) {
// do something
}

我们在整个项目中有很多这样的东西,在任何地方添加 @ts-ignore 只会变得一团糟。

我曾考虑在每个导入参数的地方做类似 const p: any = params; 的事情,但这会在大多数文件中创建额外的常量,所以我结束了放弃这种方法。

在不改变我们的 parameters.js 的情况下,有没有办法将 params 转换为 any?

您可以声明变量,以便 TypeScript 知道它的类型:

import * as params from './parameters';

declare const params: {
  activityTime?: number;
};