【发布时间】:2019-01-07 16:08:30
【问题描述】:
我有一个 typescript/react 项目,我在其中使用 @material 组件。在@types/material__component 下有定义。 在定义中经常有类似的接口(这个来自@types/material__menu/constants.d.ts):
export interface CornerBit extends MDCNumbers {
BOTTOM: 1;
CENTER: 2;
RIGHT: 4;
FLIP_RTL: 8;
}
现在,如果我想在我的代码中使用 CornerBit,我会这样做:
import { CornerBit } from "@material/menu/"
@material/menu/index.js 从声明为的 constants.js 导出 CornerBit:
const CornerBit = {
BOTTOM: 1,
CENTER: 2,
RIGHT: 4,
FLIP_RTL: 8,
};
现在,当我将上面写的 CornerBit 导入我的文件并尝试这样做时:
const MyCornerBit = CornerBit;
我明白了:
TS2693: 'Corner' only refers to a type, but is being used as a value here.
所以我想我只是以某种方式导入接口,而不是 const 本身。我该如何使用这样的接口(所有属性都有明确的值)?
感觉完全没用:
const MyCornerBit: CornerBit = {
BOTTOM: 1,
CENTER: 2,
RIGHT: 4,
FLIP_RTL: 8,
}
谢谢。
【问题讨论】:
-
您正在尝试将
CornerBit分配给MyCornerBit并且错误表明这是不正确的,因为它是一种类型。如果你想说MyCornerBit是CornerBit类型,那么使用: 而不是=。有点不清楚你想要实现什么 -
我试图使 MyCornerBit 成为具有上述值的对象。这样我就可以使用 MyCornerBit.BOTTOM、MyCornerBit.CENTER 等。
标签: typescript typescript-typings typescript2.0