1
ここで私が達成したいと思うものの擬似構文があります。戻り値の型を拡張する方法は?
type Potatoizer<T> = (input:T) => (T extends {potato: number})
ここで私が達成したいと思うものの擬似構文があります。戻り値の型を拡張する方法は?
type Potatoizer<T> = (input:T) => (T extends {potato: number})
あなた自身がintersection typesを使用することを検討して、あなたは上extends
を使用することはできませんタイプを拡張したい見つけます。あなたの場合は、T
の汎用品がありますので、interface WithPotato extends T
を行うことはできません。また、T extends {potato: number}
を渡すこともできません。これは、渡されたタイプT
が実際にそれを拡張するものではないからです。あなたにできることはこれです:
type Potatoizer<T> = (input:T) => T & {potato: int}
(?int
何あなたがnumber
を意味しています)
そしてPotatoizer<T>
は、いくつかのタイプのパラメータを受け取り、値を返す関数の型でありますタイプint
(またはあなたが意味するもの)タイプの追加のpotato
プロパティを持つ同じタイプです。
がんばろう!
Whoa! '&'。それはどこから来ましたか?高尚な仲間:} – Birowsky