gpt4 book ai didi

angular - 以 Angular 6 从命名空间导出的枚举导致运行时错误

转载 作者:行者123 更新时间:2023-12-04 17:06:18 24 4
gpt4 key购买 nike

为什么从 angular 导出的枚举会导致运行时错误? Intellisense 工作正常,但在运行时它无法在我使用导出枚举的任何地方找到命名空间。但它适用于从命名空间导出的接口(interface)。

检查此堆栈 Blitz https://stackblitz.com/edit/angular-enum-within-namespace

我从 导出了两个实体用户 命名空间(文件:user.ts)

declare namespace User {
export enum eUserType {
Driver = 1,
Passenger = 2,
User = 3
}

export interface Profile {
firstName: string;
lastName: string;
}
}

在 AppComponent 中尝试使用时(文件:app.component.ts)

import { Component } from '@angular/core';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
constructor() {
this.displayUser();

// uncommenting following piece of code is causing an error ...
// ==> this.displayUserType();
}

displayUserType() {
const newVariable = User.eUserType.Driver;
console.log(newVariable);
}

displayUser() {
const profile = <User.Profile> {
firstName: "John",
lastName: "Doe"
};
console.log("profile:", profile);
}
}

当您取消注释时 this.displayUserType() 函数你会在控制台看到错误 用户未定义

最佳答案

您可以将命名空间声明更改为 export namespace User {...}而不是 declare namespace User {...}然后像这样将它导入到你的模块中:
import { User } from './user'
这是您的 Stackblitz修改了一个工作示例

关于angular - 以 Angular 6 从命名空间导出的枚举导致运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56159438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com