gpt4 book ai didi

javascript - 流类型 : return type of function (k) => obj[k]

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:37 24 4
gpt4 key购买 nike

我有一个User对象:

type User = {
name: string,
};

它有一个 get() 函数,该函数接受 User 上属性的键参数并返回该属性。函数 get 是

User.prototype.get = (prop) => {
return this[prop];
};

我该如何编写这个函数定义?这是我到目前为止所得到的:

type User = {
name: string,
get: (k: $Keys<User>) => any, // How can I change any to the correct property type ?
};

最佳答案

看来你现在可以使用$ElementType<T, K> 。待确认!

来源:https://github.com/facebook/flow/issues/4122#issuecomment-314700605

<小时/>

编辑: Working example

/* @flow */

type User = {
name: string,
age: number,
}

const user: User = {
name: 'Ilyes',
age: 21,
}

function get<K: string>(key: K): $ElementType<User, K> {
return user[key];
}

const number: number = get('name'); // error
const number2: number = get('age'); // works
const string: string = get('name'); // works
const string2: string = get('age'); // error

关于javascript - 流类型 : return type of function (k) => obj[k],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44392642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com