angular - Enum 未定義
我有枚舉:
export enum Roles {
user = 10,
editor = 30,
admin = 50,
}
我將它匯入到我的其中一個服務中:
import { Roles } from '../enums/roles';
並在服務方法中使用:
this.writeRole(
Roles.user,
);
當我在應用程式中調用此方法時,控制台出現錯誤:Cannot read property 'user' of undefined
但是當我只是簡單地在服務中寫相同的 enum(但沒有 export 關鍵字)而不是導入時,它運作得很完美。請解釋,我做錯了什麼,為什麼我不能像導入類一樣導入 enum?
答案#1
這個錯誤通常與你的 IDE 有關:舉例來說 Visual Studio Code(我正在使用它,顯然你也是)
當你建立一個檔案時,VSCode 會將它加入索引。它允許你使用 CtrlP 打開檔案。
但是當你移動它時,VSCode 不會重新建立其索引。這意味著它從錯誤的位置導入你的文件。
它會按定義檢測到它,不會拋出任何錯誤(因為對他來說,他的索引是最新的),但在編譯時這個問題會浮現。
為了避免這種情況,你可以透過重新載入 VSCode 來重建索引(關閉它,或按下命令快捷鍵(F1)並輸入「reload」),或者你可以使用像 Move Typescript 這樣的外掛,它在移動檔案時非常有用。
答案#2
在你的服務/組件中 - 只需做「enum=Enum」:
roles = Roles
