我在组件中定义了一个内部类来保存视图模型,并且需要将http响应接口转换为该视图模型。我尝试过这种方式:
@Component({
selector: 'app-tasklist-items-grid',
templateUrl: './tasklist-items-grid.component.html',
styleUrls: ['./tasklist-items-grid.component.scss'],
providers: [TasklistItemsService, BsModalService]
})
export class TasklistItemsGridComponent implements OnInit {
// .....
TaskListItemViewModel = class {
id?: number;
tasklistId: number;
typeOfTask: number;
statusId: number;
created_at: Date;
updated_at: Date;
checked: Boolean;
rowVersion: number;
}
convertToViewModel = (item: TaskListItemViewModel) => item;
}
但是,找不到TaskListItemViewModel
类型。我还尝试将内部类和方法都定义为静态,但仍然无法正常工作。
我想念什么?
答案 0 :(得分:0)
您需要使用以下语法在TasklistItemsGridComponent之外定义类,但如果要创建嵌套类,则需要遵循链接中使用的解决方案: Any way to declare a nest class structure in typescript?
class TaskListItemViewModel {
id?: number;
tasklistId: number;
typeOfTask: number;
statusId: number;
created_at: Date;
updated_at: Date;
checked: Boolean;
rowVersion: number;
}
@Component({
selector: 'app-tasklist-items-grid',
templateUrl: './tasklist-items-grid.component.html',
styleUrls: ['./tasklist-items-grid.component.scss'],
providers: [TasklistItemsService, BsModalService]
})
export class TasklistItemsGridComponent implements OnInit {
convertToViewModel = (item: TaskListItemViewModel) => item;
}
答案 1 :(得分:0)
我认为您可以在组件外部声明模型的接口,而在组件内部只需创建实现该接口的嵌套类(即类表达式)即可。然后,您可以在类表达式中添加方法。
import { Component } from '@angular/core';
export interface MyInterface {
id?: number;
tasklistId: number;
typeOfTask: number;
// other properties
}
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
TaskListItemViewModel = class implements MyInterface {
constructor(
public id: number,
public tasklistId: number,
public typeOfTask: number
) {}
// other methods which you want to implement
}
convertToViewModel = (item: MyInterface) => new this.TaskListItemViewModel(1, 2, 3);
}
当然,此示例显示-TypeScript的功能强大(在此示例中,我们看到的是Class expressions feature),但是我不会在实际项目中这样做,因为大多数流行的样式指南建议声明类/接口/枚举。 ...(又称模型)放在单独的文件中,通常为some-feature.model.ts
。然后,我们可以在应用程序的其他部分(例如组件,指令等)中使用模型。
答案 2 :(得分:0)
根据您的要求,可以按以下方式使用它:
import matplotlib.pylab as plt
import scipy.sparse as sps
A = sps.rand(10,10, density=0.5)
M = sps.csr_matrix(A)
plt.spy(M)
plt.show()