我希望我的函数返回嵌套的Content类型,但是即使我们确定应该返回的类型,它也无法正常工作。让我们看一个例子:
@user.route("/edit_profile/", methods=['GET', 'POST'])
def edit_profile():
form = EditProfileForm()
if form.validate_on_submit():
user = User.query.filter_by(username=current_user.username).first()
user.username = form.username.data
user.about_me = form.about_me.data
# if form.profile_picture.data: # this returns None
# user.profile_pic = process_image(form.profile_picture.data,
# user.username)
print(isinstance(form.profile_picture, FileStorage))
db.session.commit()
return redirect(url_for("user.profile", uname=current_user.username))
elif request.method == 'GET':
form.username.data = current_user.username
form.about_me.data = current_user.about_me
return render_template('user/user_edit_profile.html', form=form)
我希望“ some”包含并提出“ extra”和“ prop”,但是使用“ extra”会抛出TypeScript。
答案 0 :(得分:2)
使用通用类型参数定义函数,以便Typescript可以正确推断类型:
const factory = (content: Content) => {
return <K extends keyof Content>(key: K) => {
return content[key];
};
};
答案 1 :(得分:1)
修复非常简单:
const factory = (content: Content) => {
return <T extends keyof Content>(key: T) => {
return content[key];
};
};
区别在于,现在我们将key
的类型限制为传递字符串文字,而不是任何Content
键