- SAP 电商云 Spartacus UI 和路由相关的 Stat
- SAP 电商云 Spartacus UI 的 Product C
- Angular InjectionToken APP_INITI
- 网站上的 breadcrumb 使用场景浅析
- SAP UI5 sap.ui.vk 命名空间内的控件介绍
- HTML 按钮(button)的 disable 属性和 dis
- SAP 电商云 Spartacus UI 产品搜索结果的设计明细
- SAP 电商云 Spartacus UI Proxy Facad
- Angular @Injectable 注解的工作原理浅析
- 关于 Angular 部署以及 index.html 里 bas
state,effects,action,reducer 都在这个文件夹里:

在 routing-state.ts 里定义了 RouterState 接口:

继承自 ngrx router 里的 RouterReducerState 类型,类型参数为我们自定义的 ActivatedRouterStateSnapshot.
export interface ActivatedRouterStateSnapshot {
url: string;
queryParams: Params;
params: Params;
context: PageContext;
cmsRequired: boolean;
semanticRoute?: string;
}
看个例子:
interface myType<T,V>{
name: T,
value: V
};
interface jerryType extends myType<string, number>{
score: number;
}
const a: jerryType = {
name: 'Jerry',
value: 1,
score: 2
};
其中 state 的类型,需要定义 RouterReducerState 的扩展类型时传入:

BaseRouterStoreState 类型:只有一个 url 字段:

我们自定义的 ActivatedRouterStateSnapshot,extends 了 BaseRouterStoreState,第一个字段就为 url:

看个例子:
type jerryType = {
name: string
};
interface mySuperType<T extends jerryType>{
value: T
};
type superJerryType = {
score: number;
name: string;
}
let a: mySuperType<superJerryType> = {
value:{
score: 1,
name: 'Jerry'
}
};
console.log(a);
更多Jerry的原创文章,尽在:"汪子熙":

网友评论