2017-01-13 1 views
0

私は引数としてオブジェクトを必要とする関数を持っています。 このオブジェクトのすべてのパラメータは、インターフェイスによって定義されたルールに従う必要があります。どうすれば定義できますか?パラメータの名前を知らずに、typescriptの引数として渡されたオブジェクトのパラメータのタイプを定義します。

例コード:

{ 
    banana: {color: 'yellow', weight: '0.1'}, 
    apple: {color: 'red', weight: '0.5'}, 
} 

答えて

1

タイプは次のとおりです:

function printFruits(fruits: { [name: string]: Fruit }) { 
    for (fruit in fruits) { 
     print(fruit + ' is ' + fruits[fruit].color) 
    } 
} 

また、それに対する型の別名を持つことができます

interface Fruit { 
    color: string; 
    weight: number; 
} 

function printFruits(fruits) { 
    for (fruit in fruits) { 
     print(fruit + ' is ' + fruits[fruit].color) 
    } 
} 

だからfruits引数はそのような何かになります:

type Fruits = { [name: string]: Fruit }; 

function printFruits(fruits: Fruits) { 
    for (fruit in fruits) { 
     print(fruit + ' is ' + fruits[fruit].color) 
    } 
} 
関連する問題