javascript - 我们可以在外部 .ts 文件中声明我的类中所需的所有变量吗?
问题描述
所以我正在开发一个 Ionic 应用程序,并且在我的类(WelcomeAunthenticatedUser.ts)中有很多变量声明,这些变量在我的类函数中使用。但是我试图在外部 .ts 文件中声明所有这些变量,然后导出该文件并将其导入我的类中。这是有什么办法吗?
这是我想导出到我的班级的 Variables.ts 文件。
export var Variables: {
currentUser: string
scannedCode: string
currentAccessToken: string
imageUrl: string
product: number
cartCode: number
productQuantity: 1
//barcodeDataFields Vars
barcodeDataFieldsName: string
barcodeDataFieldsProductCode: string
barcodeDataFieldsDescription: string
barcodeDataFieldsImage: string
barcodeDataFieldsPrice: string
//productCart Vars
Quantity: number
Status: string
// userCart Vars
userCartName: string
userCartCode: number
userCartProductCode: number
userCartPrice: number
userCartTotalPrice: number
userCartQuantity: number
userCartEntryNumber: number
userCartVisibility: boolean
showButton: boolean
quantity: number
}
我将它导入我的欢迎课:
import { Variables } from './../../constants/variables'
import { Paths } from './../../constants/constants'
import { ToastController } from '@ionic/angular';
import { TranslateService } from '@ngx-translate/core';
import { AlertController } from '@ionic/angular';
@Component({
selector: 'app-welcome-authenticated-user',
templateUrl: './welcome-authenticated-user.page.html',
styleUrls: ['./welcome-authenticated-user.page.scss'],
})
export class WelcomeAuthenticatedUserPage implements OnInit {
productQuantity = 1;
ngOnInit() {
Variables.currentUser = this.localStorage.retrieve(LocalStorage.USERNAME);
Variables.currentAccessToken = this.localStorage.retrieve(LocalStorage.ACCESS_TOKEN);
Variables.cartCode = this.localStorage.retrieve(LocalStorage.CART_CODE);
Variables.showButton = false;
}
当我运行它时,它会显示如下错误:
Toast Called
core.js:6014 ERROR TypeError: Cannot read property 'cartCode' of undefined
at WelcomeAuthenticatedUserPage.ionViewWillEnter (welcome-authenticated-user.page.ts:32)
at HTMLElement.handler (ionic-angular.js:2075)
at ZoneDelegate.invokeTask (zone-evergreen.js:391)
at Object.onInvokeTask (core.js:39680)
at ZoneDelegate.invokeTask (zone-evergreen.js:390)
at Zone.runTask (zone-evergreen.js:168)
at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:465)
at invokeTask (zone-evergreen.js:1603)
at HTMLElement.globalZoneAwareCallback (zone-evergreen.js:1629)
at lifecycle (index-157155ee.js:148)
core.js:6014 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'currentUser' of undefined
TypeError: Cannot read property 'currentUser' of undefined
at WelcomeAuthenticatedUserPage.<anonymous> (welcome-authenticated-user.page.ts:50)
at Generator.next (<anonymous>)
我有什么办法可以做到这一点?
解决方案
看起来你还没有初始化Variables
常量。尝试以下操作:
export const Variables: {
currentUser: string
scannedCode: string
currentAccessToken: string
imageUrl: string
product: number
cartCode: number
productQuantity: 1
//barcodeDataFields Vars
barcodeDataFieldsName: string
barcodeDataFieldsProductCode: string
barcodeDataFieldsDescription: string
barcodeDataFieldsImage: string
barcodeDataFieldsPrice: string
//productCart Vars
Quantity: number
Status: string
// userCart Vars
userCartName: string
userCartCode: number
userCartProductCode: number
userCartPrice: number
userCartTotalPrice: number
userCartQuantity: number
userCartEntryNumber: number
userCartVisibility: boolean
showButton: boolean
quantity: number
} = {};
推荐阅读
- python - Django 没有反向匹配,上下文破坏了我的代码
- if-statement - 是否可以在不破坏代码的情况下将 `if ... in` 和 `{` 保持在同一行?
- java - 具有同步块的类级锁定,同一实例上的多个线程
- assembly - 在 ARM 汇编中编译 MOV 指令时出错
- haskell - 如何将元组列表合并为单个元组?
- ubuntu - 安装 node-red-contrib-jdbc 失败并出现 gyp 配置错误
- wordpress - 主题中的 Wordpress 编辑按钮
- sql - 如何根据 RedShift 中的两个唯一列删除重复记录
- jquery - 将 L.motion 插件与 L.multioptionspolyline 一起使用
- vue.js - 无法从 Vue3 中的实例更新组件数据