Angular 财产';x';不存在于类型';插座类型';虽然我已经申报了
这是我的课Angular 财产';x';不存在于类型';插座类型';虽然我已经申报了,angular,ionic-framework,ionic2,Angular,Ionic Framework,Ionic2,这是我的课 import { Injectable } from '@angular/core'; import { Events } from 'ionic-angular'; @Injectable() export class Socket { public isConnected: boolean = false; constructor(public events: Events) { console.log("Socket.js constructed.");
import { Injectable } from '@angular/core';
import { Events } from 'ionic-angular';
@Injectable()
export class Socket {
public isConnected: boolean = false;
constructor(public events: Events) {
console.log("Socket.js constructed.");
}
}
我使用它就像:
import { Socket } from '../App/Socket/Socket';
@Component({
templateUrl: 'layout.html'
})
export class ConferenceApp {
constructor() {
console.log(Socket.isConnected);
}
}
但是,当我运行ionic Service时,我发现类型“typeof Socket”上不存在属性“isConnected”错误
Typescript不支持附加在类范围上的值
谢谢。您在这里使用它的方式
console.log(Socket.isConnected);
isConnected
需要是静态属性,而不是您创建的实例属性
我假设您希望以不同的方式使用它,因为您添加了@Injectable()
您需要在某处提供服务,以便能够将其注入。
我不知道NgModule
是否已经登陆爱奥尼亚,但如果不需要与其他组件共享,您也可以在组件中提供它
要注入它,请将其添加到构造函数参数列表中
从“../App/Socket/Socket”导入{Socket};
@组成部分({
templateUrl:'layout.html',
提供者:[套接字]
})
导出类ConferenceApp{
构造函数(套接字:套接字){
console.log(socket.isConnected);
}
}
然后使用构造函数参数而不是类名访问它。这里使用它的方式
console.log(Socket.isConnected);
isConnected
需要是静态属性,而不是您创建的实例属性
我假设您希望以不同的方式使用它,因为您添加了@Injectable()
您需要在某处提供服务,以便能够将其注入。
我不知道NgModule
是否已经登陆爱奥尼亚,但如果不需要与其他组件共享,您也可以在组件中提供它
要注入它,请将其添加到构造函数参数列表中
从“../App/Socket/Socket”导入{Socket};
@组成部分({
templateUrl:'layout.html',
提供者:[套接字]
})
导出类ConferenceApp{
构造函数(套接字:套接字){
console.log(socket.isConnected);
}
}
然后使用构造函数参数而不是类名访问它。您需要通过
new Socket()
创建Socket
的实例。然后您将能够访问该属性。您还可以通过依赖项注入来注入它。您需要通过new Socket()
创建Socket
的实例。然后您将能够访问该属性。您还可以通过依赖项注入来注入它。您的问题是,您将套接字用作静态类,而不是使用angular2的DI系统
这将有助于:
import { Socket } from '../App/Socket/Socket';
@Component({
templateUrl: 'layout.html'
})
export class ConferenceApp {
constructor(socket:Socket) {
console.log(socket.isConnected);
}
}
因为它使用的是angular2的DI系统,所以您将收到一个Socket实例,而不是实际的Socket
类。您的问题是,您将Socket用作静态
类,而不是使用angular2的DI系统
这将有助于:
import { Socket } from '../App/Socket/Socket';
@Component({
templateUrl: 'layout.html'
})
export class ConferenceApp {
constructor(socket:Socket) {
console.log(socket.isConnected);
}
}
因为它使用的是angular2的DI系统,所以您将收到一个套接字实例,而不是实际的Socket
类。共享。/App/Socket/Socket
?是。/App/Socket/Socket
是服务
?共享。/App/Socket/Socket的代码
?是。/App/Socket/Socket
是服务
?