typescript - Typescript 使用具有严格值的接口
问题描述
我有一个打字稿/反应项目,我在其中使用@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,
}
谢谢你。
解决方案
你应该像这样声明你MyCornerBit
的CornerBit
const
const MyCornerBit: CornerBit;
无需使用匹配的属性实例化该 const
推荐阅读
- php - 如何使用 pdo->fetchAll 和模式 PDO::FETCH_CLASS 将 GROUP_CONCAT 从字符串映射到数组
- kotlin - 使用 Kotlin Mockito 测试捕获异常
- html - 如何在 HTML 单元格中获取与图像一致的文本
- reactjs - 反应大日历多天事件
- typescript - Windows Script Host 的 TypeScript 编译问题
- oracle-apex - 表单 BLOB(上传)奇怪的行为
- java - 这个 Maven pom.xml 有冲突吗?
- c - C- 带 *chars 的链表
- c# - Azure Active Directory B2C 注册
- javascript - 通过 jQuery ajax 请求访问嵌套的 JSON 数据