0
私は動的に作成されたメソッドでサービスを作成しようとしています。だから、動的Ionic2サービスメソッド
test.service.ts:
import {Injectable} from '@angular/core';
@Injectable()
export class TestService {
constructor() {
}
init(defaults: any) {
Object.keys(defaults).forEach(key => {
this[key] = (val?: any) => {
console.log(key, val)
}
});
}
}
app.component.ts
export class MyApp {
constructor(public platform: Platform,
private test:TestService) {
this.initializeApp();
test.init({
foo: 'bar'
});
console.log(test);
test.foo('foobar');
}
initializeApp() {
this.platform.ready().then(() => {
StatusBar.styleDefault();
Splashscreen.hide();
});
}
}
私はそれが正しいtranspilingだtest.foo('foobar');
行をコメントアウトします。私はそれに戻って行のコメントを解除すると動作します(私はコンソールで見ることができる)が、私は活字体のエラーを取得:
[21:42:12] typescript: src/app/app.component.ts, line: 28 Property 'foo' does not exist on type 'TestService'. L27: console.log(test); L28: test.foo('foobar');
。 私の質問は、Typescriptに気にしないことを伝える方法です。
私はtest['foo']('foobar')
を使用することができますが、私はしたくない...
I created a git repo to demonstrate my attempt
申し訳ありませんが、これは私がやろうとしているものにも近いです。 – Heiko