use*_*289 6 javascript typescript reactjs
我在我的 Typescript / ReactJS 项目中看到一个错误:Variable 'myVar' is used before being assigned. TS2454
我正在运行 TS 版本 4.2.3,并且当我尝试运行代码时,此错误会出现在我的 IDE 中。但是,它在 jsFiddle (https://jsfiddle.net/d79L4ju8/)中工作正常,我不明白为什么会抛出错误,因为变量似乎已声明并检查:
interface testType {
id: string,
message: string,
}
let requestType = 'eventCreated';
let testVar = true;
let myVar: testType;
if (testVar) {
myVar = {
id: 'abc123',
message: 'message goes here',
}
}
switch (requestType) {
case 'eventCreated':
if (myVar !== undefined) { // error thrown here
console.log(myVar);
}
break;
case 'eventChanged':
if (myVar !== undefined) {
console.log(myVar);
}
break;
}
Run Code Online (Sandbox Code Playgroud)
是什么导致这个失败?
小智 8
如果未分配 testVar,则将使用 myVar 而不进行初始化。您可以像这样重写代码:
interface testType {
id: string,
message: string,
}
let requestType = 'eventCreated';
let testVar = true;
let myVar: testType | undefined = undefined;
if (testVar) {
myVar = {
id: 'abc123',
message: 'message goes here',
}
}
switch (requestType) {
case 'eventCreated':
if (myVar !== undefined) { // error thrown here
console.log(myVar);
}
break;
case 'eventChanged':
if (myVar !== undefined) {
console.log(myVar);
}
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7272 次 |
| 最近记录: |