0
执行以下代码时,我得到一个TypeError
:属性未定义的打字稿
server.class.ts
import {Handlers} from './handlers.class';
export class Server{
private _hInstance: Handlers;
static _instance: Server;
private constructor(){
this._hInstance = new Handlers();
this._hInstance.mymethod();
}
static instance(): Server{
if(!!!Server._instance){
Server._instance = new Server();
}
return Server._instance;
}
}
handler.class.ts
import { Polo } from './../extapi/polo.class';
export class Handlers{
private _polo: Polo;
constructor(){
this._polo = Polo.instance(); // same as Server.instance()
}
mymethod(){
this._polo.someMethod(); // Error
}
马球类使用定义单个实例的相同技术,并提供用于返回实例的静态方法instance()
。该代码单独测试,工作正常。该类型的错误引发了undefined
属性_polo
无法读取。这真是令人困惑,因为在其实例上调用someMethod
之前已经实例化类Polo
。
谢谢。
你能提供一个jsfiddle的问题吗? mymethod叫什么名字? – Harald
@Harald'mymethod'只能在'Server'类的构造函数中调用。为了澄清,代码库很长,我不确定是否发布了整个代码(6个类,2个接口),所以我只是找出引起问题的部分。如果问题不明确,那么我会发布整个代码(我很乐意回答任何其他问题)。谢谢 –
@Harald jsfiddle:https://jsfiddle.net/mr0cool/bf9e8wmy/ –