前提・実現したいこと
アンビエント宣言(declare宣言)されたクラスの実体をインスタンス生成できず困っています。
仕事で、アンビエント宣言(declare宣言)されたクラスをAngular側でインスタンス化する必要があり、何か方法をご存じであればご教授をお願いいたします。
発生している問題・エラーメッセージ
以下、chromeのデベロッパーツールのコンソール内容です。ビルドではエラーは発生しないのですが、動作させるとnot definedが発生しています。 (index):18 (SystemJS) FooClass is not defined ReferenceError: FooClass is not defined at Object.eval (http://localhost:3000/main.js:5:15) at eval (http://localhost:3000/main.js:10:4) at eval (http://localhost:3000/main.js:11:3) at eval (<anonymous>) Evaluating http://localhost:3000/main.js Error loading http://localhost:3000/main.js
該当のソースコード
====foo.d.ts declare var fooVariable: string; declare function fooFunction(): string; declare class FooClass { public bar(): string; public fooVariable: string; } declare module FooModule { export function bar(): string; } declare module "fooModule" { export function bar(): string; } interface FooInterface { bar(): string; } ====main.ts import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule); /// <reference path="foo.d.ts" /> declare class Test extends FooClass{ } var result3 = new FooClass; result3.fooVariable= "test" result3.bar(); console.debug(result3.fooVariable);
試したこと
上記コードをVSCODE上で実行(npx start)させました。
シュミレータのブラウザは表示されるのですが、chromeのデベロッパーツールのコンソールにエラーが表示されています。
補足情報(FW/ツールのバージョンなど)
アンビエント宣言は、他のコンポーネント(例えば Web ブラウザや既存の JavaScript ライブラリ)から
変数や関数などが提供されるため、ビルドの対象外になってしまっていると予測しています。しかしどうしてもアンビエント宣言(declare宣言)されたクラスをAngular側でインスタンス化する必要があり、方法をご存じであればご教授をお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/04 03:08
2021/01/04 03:33 編集
2021/01/04 05:10
2021/01/04 05:25 編集
2021/01/04 10:05 編集
2021/01/04 10:38
2021/01/05 13:39
2021/01/05 13:46 編集
2021/01/06 04:33