我正在浏览一个名为 Angular ngrx 项目的打字稿文件collection.ts
在那里,我看到声明了以下枚举常量。
import { Action } from '@ngrx/store';
import { Book } from '../models/book';
export enum CollectionActionTypes {
AddBook = '[Collection] Add Book',
AddBookSuccess = '[Collection] Add Book Success',
AddBookFail = '[Collection] Add Book Fail',
RemoveBook = '[Collection] Remove Book',
RemoveBookSuccess = '[Collection] Remove Book Success',
RemoveBookFail = '[Collection] Remove Book Fail',
Load = '[Collection] Load',
LoadSuccess = '[Collection] Load Success',
LoadFail = '[Collection] Load Fail',
}
/**
* Add Book to Collection Actions
*/
export class AddBook implements Action {
readonly type = CollectionActionTypes.AddBook;
constructor(public payload: Book) {}
}
export class AddBookSuccess implements Action {
readonly type = CollectionActionTypes.AddBookSuccess;
constructor(public payload: Book) {}
}
export class AddBookFail implements Action {
readonly type = CollectionActionTypes.AddBookFail;
constructor(public payload: Book) {}
}
/**
* Remove Book from Collection Actions
*/
export class RemoveBook implements Action {
readonly type = CollectionActionTypes.RemoveBook;
constructor(public payload: Book) {}
}
export class RemoveBookSuccess implements Action {
readonly type = CollectionActionTypes.RemoveBookSuccess;
constructor(public payload: Book) {}
}
export class RemoveBookFail implements Action {
readonly type = CollectionActionTypes.RemoveBookFail;
constructor(public payload: Book) {}
}
/**
* Load Collection Actions
*/
export class Load implements Action {
readonly type = CollectionActionTypes.Load;
}
export class LoadSuccess implements Action {
readonly type = CollectionActionTypes.LoadSuccess;
constructor(public payload: Book[]) {}
}
export class LoadFail implements Action {
readonly type = CollectionActionTypes.LoadFail;
constructor(public payload: any) {}
}
export type CollectionActions =
| AddBook
| AddBookSuccess
| AddBookFail
| RemoveBook
| RemoveBookSuccess
| RemoveBookFail
| Load
| LoadSuccess
| LoadFail;
为枚举常量提供一个值很好,但我很困惑这是什么意思[Collection]
此处表示为每个常量的一部分。这样的写法对枚举常量的值没有影响还是显示了其他的东西?谁能解释一下吗?
您可能正在使用一些 Flux/Redux 框架,例如ngrx store
或类似的。这个枚举定义了动作并确保你的动作键(字符串)在全局级别上是唯一的,因为最后,它们都被合并到减速器反应的一大组动作中。
为了帮助满足该条件,您通常会将操作的类型放在方括号中的键开头。它只是一个命名约定,与打字稿没有任何关系。
例如,
你可以有实体Book
and Category
。对于他们两个,你都可以用 key 进行操作Load Entity
。为了区分这两个操作键,一种约定是将名称命名为[Book] Load Entity
and [Category] Load Entity
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)