我今天在这里,是因为我有一个问题,如标题所述,关于Angular中的类和接口。
从我的角度来看,我理解:
Typescript中使用了接口来进行类型检查,这些接口一直存在,直到进行编译并在生产中消失为止。接口也不能用于实例化。
来自ES6的类也用于类型检查,但它们会在编译后保留并在生产中生成代码。同样,它们用于实例化。
因此,基本上,如果我们在生产中不需要它们,而仅需要类型检查,则Interface是有用的。相反,如果我们在生产中需要它们(特别是用于实例化),则可以在这里使用Class。
我是正确的,还是我错过了有关类和接口的知识?
我的目标原则上很简单,但我无法实现:我希望在更改服务变量时更新我的一个组件。
为了更好地解释我的问题,这里有一个例子:
在这里,我有一项增加或减少一些积分的服务。当它收到对其功能之一的调用时,它会减少或增加此点数。它还说明这个变量是偶数还是奇数
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class TestService {
Number: number = 0;
IsOdd: boolean = false;
constructor() {}
IncreaseNumber() {
this.Number = this.Number + 1;
this.IsOdd = !this.IsOdd;
}
DecreaseNumber() {
this.Number = this.Number - 1;
this.IsOdd = !this.IsOdd;
}
}
Run Code Online (Sandbox Code Playgroud)
*这里,我有我的组件,它需要知道我的数字是偶数还是奇数。
初始化时,没问题!它知道!
如何,每次我的服务 (test.service.ts) 中的数字发生变化时,我都会确保我的组件 (test.component.ts) 中的值对/导入发生变化?*
import { Component, OnInit } from '@angular/core';
import { TestService } from '../test.service'
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss']
}) …Run Code Online (Sandbox Code Playgroud)