是否可以将jQuery对象作为构造函数参数传递给typescript对象?

Is it possible to pass a jQuery object as a constructor parameter to a typescript object?

本文关键字:对象 构造函数 参数传递 typescript jQuery 是否      更新时间:2023-09-26

我们正在研究打字稿的一种特殊行为。在下面的两个代码示例中,应该通过typescript修改jQuery对象。在这个正常工作的例子中,我们在typescript类实例化后的一个方法中使用选择器引擎来引用jQuery对象。如此:

namespace Company.Module {
    export class GenericService {
        private statefulObject: JQuery;
        public constructor( ) {
        }
        private _toggleObjectState(): void {
            this._statefulObject.toggleClass('text-hide text-success');
        }
        public SetObjectState(): void {
            this.statefulObject = $('#statefulObject');
            _toggleObjectState();
        }
    }
}

而在构造函数中传递jQuery对象不起作用:

namespace Company.Module {
    export class GenericService {
        private statefulObject: JQuery;
        public constructor( _statefulObject: JQuery ) {
            this.statefulObject = _statefulObject;
        }
        private _toggleObjectState(): void {
            this._statefulObject.toggleClass('text-hide text-success');
        }
        public SetObjectState(): void {
            _toggleObjectState();
        }
    }
}

我们想知道为什么会这样

不幸的是,这不是问题。我们的代码无法工作,因为我们引用了一个动态添加到DOM中的对象。当传递给typescript构造函数时,对象只是没有加载到DOM中,因此无法对其进行操作。版主请随意删除此问题