【发布时间】:2021-10-31 13:01:02
【问题描述】:
我有一个对象总是有两个成员,在某些情况下,可以添加第三个。
尝试 #1:可选成员
let initObject = {
headers: headers,
method: method ? 'GET' : method,
body?: ''
}
if (method === 'POST') {
initObject.body = body
}
TS1162: An object member cannot be declared optional. 失败
尝试#2:强制添加成员:
let initObject = {
headers: headers,
method: method ? 'GET' : method,
}
if (method === 'POST') {
initObject.body = body
}
这会失败,TS2339: Property 'body' does not exist on type '{ headers: Headers; method: string; }'.
如何向对象添加可选成员?
我目前使用一种解决方法,但它是重复的,我相信有更好的方法
let initObject
if (method === 'GET') {
initObject = {
headers: headers,
method: 'GET',
}
} else if (method === 'POST') {
initObject = {
headers: headers,
method: 'POST',
body: body
}
}
【问题讨论】:
标签: typescript javascript-objects