2017-05-07 40 views
4

我想知道指定React組件在Typescript中沒有道具的正確方法。React和Typescript:沒有道具通過時的類的公約

如果我有一個組件,我可以指定有兩個接口是什麼道具和狀態:

​​

所以,如果我的組件沒有道具,我應該用voidundefined{}

+2

我不認爲有這樣做的「正確方法」,但是當組件沒有道具(或沒有狀態)時,通常使用'void',它是[寫在文檔中](https:/ /www.typescriptlang.org/docs/handbook/basic-types.html#void):'根本沒有任何類型' –

+1

從類型系統的角度來看,'{}'更好。 'undefined'簡直是不準確的,'void'沒有任何意義。 @NitzanTomer不是沒有道具映射到空集的概念而不是集? –

+0

感謝您的提示! –

回答

1

這個確切的(幾乎)問題在Typescript 2.3的公告中得到解答。

但是,大多數情況下,組件中永遠不會使用狀態。在這種情況下,我們可以只寫或類型的對象{},但我們必須這樣做明確:

class FooComponent extends React.Component<FooProps, object> { 
    // ... 
} 

因此,在你的情況,你只想扭轉object的道具PARAM使用而不是狀態參數。

+1

謝謝你的回答! –