如何将命名空间分配给typescript中的类的属性

问题描述 投票:0回答:1

我正在将一个声明文件添加到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.
}

我该如何解决这个问题?

typescript tsc
1个回答
0
投票

您的import语句表示您要从sequelize模块导入所有内容并将其放在名为Sequelize的名称空间中。

您需要将以这种方式导入的任何成员称为namespace.member - 在您的示例中将是Sequelize.Sequelize,尽管作为个人偏好,我会重命名命名空间以避免重复。

import * as Sequelize from 'sequelize'; 
//...

interface Application{
    Sequelize: Sequelize.Sequelize; 
}
© www.soinside.com 2019 - 2024. All rights reserved.