typescript - 我知道的最好的写数组类型的方法
问题描述
所以我正在导入包含以下值的文件(以及许多其他类似的值)
export const COLUMN_TYPES = [
"integer",
"string",
"boolean",
"datetime",
"image",
"images",
"text",
"auth_key",
"enum_type"
];
现在,我不希望上面的类型是,Array<string>
因为我确信它只会包含值。
如果我不写类型而只导入它会给出以下错误
Cannot find module 'src/constants' or its corresponding type declarations.
解决此错误的最佳方法是什么?Array<string>
即使我们的数组是具有特定值的常量,也使用?使用枚举?
解决方案
你可以有枚举而不是像这样的常量数组,你可以像这样使用它作为类型
export enum COLUMN_TYPES {
integer,
string,
boolean,
datetime,
image,
images,
text,
auth_key,
enum_type
}
var types: COLUMN_TYPES[] = [COLUMN_TYPES.auth_key, COLUMN_TYPES.boolean, /** ............. **/ ];
示例: 打字稿游乐场
Crice 的更新答案
例如,您可以将状态定义为这样的枚举
export enum ItemStatus {
REJECTED = 2,
REMOVED = 4,
APPROVED = 6,
PROCESSED = 7,
PAYABLE = 8,
PARTIALLY_PAID = 9,
PAID = 10,
}
因此在您的项目模型中,您将使用枚举作为一种状态
export interface ItemModel {
// .......
status: ItemStatus
}
在组件中,您可以导入ItemStatus
并在条件中使用它
使用示例
import { ItemStatus } from 'path';
if(item.status === ItemStatus.PAID) {
}
或者
switch(item.status) {
case ItemStatus.REJECTED:
break;
case ItemStatus.REMOVED:
break;
case ItemStatus.APPROVED:
break;
case ItemStatus.PROCESSED:
break;
case ItemStatus.PAYABLE:
break;
case ItemStatus.PARTIALLY_PAID:
break;
case ItemStatus.PAID:
break;
}
推荐阅读
- python - Python xml树结构
- python - PCA 如何计算“sklearn”中的转换版本?
- sql - 在 SQL 中透视和取消透视具有多列和多行的表
- python-3.x - 而在 py3 中的 nltk 中的 cicle
- variable-assignment - 在 Firebird 的 SQL 编辑器上下文中分配变量
- phpexcel - PHPSpreadsheet 加载 CSV 设置默认数据格式
- node.js - 无服务器部署后未创建端点
- c# - 使用 Simple Injector 为 Log4Net 实现 Logger 类
- javascript - React.js 给出了意外的令牌
- python - UnboundLocalError:在分配之前引用的局部变量