问题描述
class 中使用 ! 非空断言运算符声明一个属性构造结束依旧会被赋值为 undefined,如示例中的 _aaa
属性
- 版本:>= 3.7
- 平台:预览
示例代码
import { _decorator } from "cc";
const { ccclass } = _decorator;
@ccclass('absTest')
export abstract class absTest<T> {
constructor(value: T) {
this.Update(value);
}
private _bbb: T;
public get bbb(): T {
return this._bbb;
}
public Update(val: T) {
this._bbb = val;
this.OnUpdate();
}
protected abstract OnUpdate(): void;
}
@ccclass('test1')
export class test1 extends absTest<string>{
protected OnUpdate(): void {
this._aaa = "aaaaa";
}
private _aaa!: string;
public log(){
//这里,应该输出 aaaaa,哈哈
console.log(this._aaa,this.bbb);
}
}
new test1("test").log();
参考这个帖子