静的ユーティリティ関数の束でクラスを設定しました。注入されたクラスに静的関数 "does not exist"があります
// utils.ts
class Utils {
public static blank(anything) {
if (_.isNil(anything) || anything === "") {
return true;
}
return false;
};
// ...
}
window.Utils = Utils;
私は定数として私の角アプリにこれを注入:
angular.module("myApp", []).constant("Utils", window.Utils);
その後、私は私のコントローラやプロバイダでそれを使用することができます。
class MyCtrl {
constructor(private $scope, private Utils: Utils, private MyService: MyService) { }
// ...
}
angular.module("myApp").controller("MyCtrl", MyCtrl);
しかし、私は、コンパイル時にこのエラーが表示されます:
javascripts/admin/controllers/my_ctrl.ts(6,29): error TS2339:
Property 'blank' does not exist on type 'Utils'.
このような定数を角度コントローラに注入するときに、静的メソッドの正しい型情報を取得するにはどうすればよいですか?
'民間Utilsのを行う必要があります。なぜインスタンスメソッドの代わりに静的メソッドを使用するのですか?そしてUtilを定数ではなくサービスとして定義してみませんか? –
lodashのようなライブラリは、インスタンス化する必要はありませんが、同じ方法で動作するはずです。私はそれをプロバイダーで使用できるように定数として定義しています。私はサービスでそれをすることができませんでした。コンパイラにクラスのインスタンスではなくインジェクションする方法を教えてもらえますか? – Shaun