对于以下代码(在严格模式下),我收到打字稿编译时错误“在分配 ts(2454) 之前使用了变量‘值’”:
class Box<T> {
constructor(private value: T) {
}
map<U>(f: (val: T) => U): Box<U> {
return new Box<U>(f(this.value));
}
tap(f: (val: T) => unknown): void {
f(this.value);
}
}
function getValue<T>(box: Box<T>): T {
let value: T;
box.tap((val: T) => value = val);
return value;
}
const multiplyByTwo = (value: number) => value * 2;
const box = new Box<number>(55).map(multiplyByTwo);
const val = getValue(box);
console.log(val);
Run Code Online (Sandbox Code Playgroud)
该错误是针对函数 getValue 的“返回值”行生成的。
typescript ×1