【发布时间】:2020-04-13 08:55:59
【问题描述】:
有很多类似的问题,但没有一个能解决我的问题。
这是我的代码:
if (commandFn === "/fetch") {
let userFetched: string;
returnText = `${commandFn} used with ${commandArg}`;
admin.database
.ref(`/Users/` + commandArg + "/userdata")
.once("value")
.then((snapshot) => {
userFetched = snapshot.val().userdata;
});
return res.status(200).send({
method: "sendMessage",
chat_id,
text: `${returnText} /n ${userFetched}`,
});
}
为什么说变量没有赋值?在我不必使用 admin.database 功能的其他函数中,我只是在 if 块中添加了 return 语句。
我的代码中有很多 if-else 语句会更改要返回的文本,但会出现相同的错误。所以我必须在每个 if-else 块中一直添加 return 语句。
但是当我使用 admin.database 功能时,我不能这样做。 我再次看到其他类似的问题,但没有回答我的问题。
这是面临同样问题的另一段代码:
let numberOfWords: number
for (let index = 1 ; index <= userCommandSlicedLength; index++) {
let lastChar: string = ''
let currentChar: string = ''
currentChar = userCommandSliced.charAt(index)
lastChar = userCommandSliced.charAt(index-1)
if (currentChar === " " && lastChar !== " ") {
numberOfWords = numberOfWords + 1
}
else if (currentChar === " " && lastChar === " ") { // This is a test String.
numberOfWords = numberOfWords + 0
}
}
const finalNumberOfWords: number = numberOfWords
console.log(`Number of words final are = ${finalNumberOfWords}`)
第二个代码的问题:
src/index.ts:88:25 - error TS2454: Variable 'numberOfWords' is used before being assigned.
88 numberOfWords = numberOfWords + 1
~~~~~~~~~~~~~
src/index.ts:91:24 - error TS2454: Variable 'numberOfWords' is used before being assigned.
91 numberOfWords = numberOfWords + 0
~~~~~~~~~~~~~
src/index.ts:95:40 - error TS2454: Variable 'numberOfWords' is used before being assigned.
95 const finalNumberOfWords: number = numberOfWords
【问题讨论】:
标签: typescript firebase google-cloud-functions