0
我想我的Template.FOLDERS
定義一個可能的值列表(如enum
,但與字符串)。我希望能夠引用這些可能的值來鍵入我的變量,所以如果我不使用其中一個可能的值,編譯器會發出警告。TypeScript - 如何使用預定義的可能值列表正確創建我們自己的類型?
這是我到目前爲止已經完成,但我想我聽錯了:
export class Template {
public static FOLDERS: TemplateFolders = {
CONTAINERS: 'containers',
LAYOUTS: 'layouts',
PARTIALS: 'partials',
PAYMENT_METHODS: 'paymentMethods',
MAIN: 'main'
};
}
export interface TemplateFolders {
CONTAINERS: string;
LAYOUTS: string;
PARTIALS: string;
PAYMENT_METHODS: string;
MAIN: string;
}
然後,在另一個類我用這個:
protected TEMPLATE_FOLDER: string = Template.FOLDERS.MAIN;
但是,這不是我想要做的,我想輸入TEMPLATE_FOLDER
,這樣我只能設置其中一個預定義的值。
如何在TypeScript中實現這一目標?
我沒有使用'enum',因爲我找不到一種方法來爲它們設置一個值,例如:'enum Folders {CONTAINERS:'containers'}',我需要設置一個值。 – Vadorequest
我建議在需要文件夾名稱時使用一個函數。 – Paleo
這看起來更像是一種解決方法,我寧願使用適當的東西。另一種可能是重寫'TemplateFolder.toString()'函數來自動調用'toFolderName'函數,這只是一個想法。不知道它會工作,但想知道是否沒有更好的方法。 – Vadorequest