2017-08-11 76 views
2

我有多個組件,其中包含要限制爲特定值的參數。例如(在僞代碼):跨組件強制執行參數值限制

class MyFirstComponent { 
    @Input() myParameter: 'foo'|'bar'|'baz'; 
} 

class MySecondComponent { 
    @Input() myParameter: 'foo'|'bar'|'baz'; 
} 

在這兩種組分,@Input() myParameter應該只接受相同的限制值。我不想複製每個組件中允許的值,而是想要提取限制。我將如何做到這一點?我認爲這將需要enumsinterface,但我不知道如何實施這兩種方法。

回答

2

您可以使用一個類型。在某處定義它,也許是一個單獨的文件,然後導出它。這更像是一種TypeScript而不是Angular。

export type MyType = 'foo' | 'bar' | 'baz' 

然後將其導入到您要使用它的文件中。

import {MyType} from './path/to/file' 

,並使用新創建的類型:

@Input() myParameter: MyType 
+0

mypath中?那個是從哪裏來的? :) –

+0

猜猜這是一個錯字:) MyType應該在那裏 – Dekel

+0

是的,修復。犀利的眼光! –