我在类主体中声明了两个私有的、静态的和只读的属性。在类方法中,我不是试图通过在类对象中使用索引表达式来获取属性,而是在const
声明中使用解构赋值。
解构赋值没有问题,但如果我不尝试索引我的类来获取这些私有属性,TypeScript 会给我以下警告:
'PROGRESS_BAR_WIDTH' 已声明但从未使用过。
'PROGRESS_BAR_HEIGHT' 已声明但从未使用过。
我在 TypeScript GitHub 存储库中创建了一个问题,但还没有得到任何帮助。
注意:当这些属性不是私有(公共)时,这些警告会淡出。我在方法中使用这些私有静态(和只读)属性init
,它不是静态的。
这是我的代码:
import {PICTURES} from './../data/pictures';
import {WAVES} from './../data/waves';
import {GlobalBounds} from './../constants/global-bounds';
const stuffs = [];
export class PreloaderContainer extends createjs.Container
{
private static readonly PROGRESS_BAR_WIDTH:number = 183;
private static readonly PROGRESS_BAR_HEIGHT:number = 6;
private progressBar: createjs.Shape;
private progressWrapper: createjs.Shape;
public constructor ()
{
super();
this.init();
}
private init () : void
{
const {PROGRESS_BAR_WIDTH, PROGRESS_BAR_HEIGHT} = PreloaderContainer;
const progressWrapper = new createjs.Shape;
const progressBar = new createjs.Shape;
progressWrapper.graphics
.setStrokeStyle(1)
.beginStroke('#646464')
.drawRect(0, 0, PROGRESS_BAR_WIDTH,
PROGRESS_BAR_HEIGHT);
progressWrapper.x =
progressBar.x = (GlobalBounds.WIDTH / 2) - (PROGRESS_BAR_WIDTH / 2);
progressWrapper.y =
progressBar.y = 300;
progressBar.graphics
.beginFill('#646464')
.drawRect(0, 0, 20,
PROGRESS_BAR_HEIGHT);
this.progressBar = progressBar;
this.progressWrapper = progressWrapper;
this.addChild(progressBar);
this.addChild(progressWrapper);
this.preload();
}
private preload () : void
{
let loadedFiles:number = 0;
//const len:number = stuffs.length;
const queue = new createjs.LoadQueue;
queue.addEventListener('complete', function () : void
{}, false);
queue.addEventListener('fileload', function (evt) : void
{
++loadedFiles;
const item = evt.item;
const id = (<any> stuffs.filter(obj => obj === item)[0]).id;
const result = evt.result;
(result instanceof Audio ?
WAVES :
PICTURES
)[id] = result;
}, false);
queue.loadManifest(stuffs);
}
}