angular - 如何在角度/打字稿中声明变量
问题描述
我是 Angular/Typescript 的新手,所以我尝试了一个教程,当他创建服务时,他将 url 设置如下
baseUrl = 'https://localhost:44351/api/member/';
我之前读过 Typescritpt 中的变量是用 var 和 let 声明的,所以当我厌倦了将代码更新为:
var baseUrl = "https://localhost:44351/api/member/";
它给了我一个错误编译,这不是我们应该如何声明变量吗?
解决方案
既然你说你正在尝试创建一个服务,我假设你在一个类中定义这个变量。
声明类范围的变量(称为属性)时,您不需要let
关键字。相反,您想将其定义为private
,public
或protected
。
在你的情况下,我觉得一个private
变量会更合适。在这种情况下,你可以做一些事情。
export class MyService {
private baseUrl = 'https://localhost:44351/api/member/';
/* ... */
}
this
然后,您可以在服务函数中使用关键字访问此变量。
export class MyService {
private baseUrl = 'https://localhost:44351/api/member/';
/* ... */
public getTheBaseUrl(): any {
return this.baseUrl;
}
}
在这里,我使用了一个 getter 来演示,但是您可以使用相同的语法来调用例如 XmlHTTPRequest。
此外,由于这是一个 url 并且不太可能更改,因此您可以使用关键字readonly
来防止它在代码中的其他地方被更改。
export class MyService {
private readonly baseUrl = 'https://localhost:44351/api/member/';
/* ... */
public getTheBaseUrl(): any {
return this.baseUrl;
}
}
推荐阅读
- swift - Xcode 12 Interface Builder 显示“无选择”
- ios - 如何在 Objective-C 中将 JSON 数组分配给另一个 JSON 数组
- c# - 如何模拟实例方法
- c# - 智能卡阻止访问 Outlook 中的邮件项目
- python - trace32 使用 python - 使用函数 T32_ReadMemoryObj
- c# - 如果抛出异常,程序是否会停止
- python - 获取符合条件的目录列表
- bash - GNU sed:使用 s 命令在模式空间后打印新行
- amazon-web-services - 如何为已部署的 AWS 资源获取云形成模板
- javascript - 函数 window.focus() 对 opener 对象不起作用