小编sag*_*gat的帖子

ts(2454) 变量“值”在分配之前使用

对于以下代码(在严格模式下),我收​​到打字稿编译时错误“在分配 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 游乐场

typescript

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

typescript ×1