"Variable is used before being assigned" (TS2454) 没有帮助的模式



考虑以下代码模式,

class stuff {
    public id: string;
    public uid: number;
    constructor(parameter: string){
        this.id = parameter;
    }
    public getUID(): number {
        return Date.now();
    }
}
let ids: number[]; /* 1: Here variable is not assigned */
for ( let i = 0; i < 100; i++){
    ids[i] = new stuff(i.toString()).getUID();
    /* 2: Here ids[i] is used before initialized */
}

在这样的模式中,打字稿不会使用 "strict": true 进行编译。

我可以做let ids:number[] | undefined但这失去了使用打字稿的价值。

有没有其他模式可以实现相同的行为?

谢谢。

let ids: number[] = [];
for ( let i = 0; i < 100; i++){
    ids.push(new stuff(i.toString()).getUID());
}

最新更新