У меня есть следующий код:
class ValueGetter {
getValues() {
return {
value1: this.getValueAsBoolean(somewhere.something),
value2: this.getValueAsBoolean(somewhere.somethingElse)
}
}
}
Typescript знает точный тип возврата функции, а именно.
{
value1: boolean,
value2: boolean
}
Что действительно удобно, что я могу даже сделатьгде-то еще:
class MyFoo {
myBar: ReturnType<ValueGetter['getValues']>
}
Теперь я хочу принудительно установить getValues
, чтобы он мог возвращать только следующий тип {[key: string]: boolean}
Но если я добавлю это как тип возвратаиз getValues()
, я теряю точный тип возвращаемого значения с именованными ключами, который выведен для меня Typescript.
Есть ли способ применить эту типизацию только для «изнутри» getValues
, не теряя при этом крутости?Волшебство дедукции с «именованными ключами» - может повторить Typescript?