我正在将一个声明文件添加到typescript的包中。有一些语法如下:
const Sequelize = require('Sequelize');
//...
class Application {
Sequelize = Sequelize;
}
所以我写了一个这样的文件(index.d.ts):
import * as Sequelize from 'sequelize'; // this @types/sequelize export a namespace
//...
interface Application{
Sequelize: Sequelize; // <---error TS2709: Cannot use namespace 'Sequelize' as a type.
}
我该如何解决这个问题?
您的import语句表示您要从sequelize
模块导入所有内容并将其放在名为Sequelize
的名称空间中。
您需要将以这种方式导入的任何成员称为namespace.member
- 在您的示例中将是Sequelize.Sequelize
,尽管作为个人偏好,我会重命名命名空间以避免重复。
import * as Sequelize from 'sequelize';
//...
interface Application{
Sequelize: Sequelize.Sequelize;
}