私はtypescript 2.3.4を使用しています。@ types/knockoutグローバル変数 'ko'を公開しません。だから私はタイプを入れました:tsconfig.jsonと私は明示的にko(second.tsのような)をインポートしたいと思います。宣言された関連モジュールがインポートされるとすぐに、すべてのファイルに対してグローバル宣言が使用可能になります。
const obs : KnockoutObservable<string> = ko.observable("hello"); // should raise error TS2304: Cannot find name 'ko'. and error TS2304: Cannot find name 'KnockoutObservable'.
console.log(obs());
: 問題は、私はsecond.tsで行う輸入がfirst.tsためグローバル(KO、KnockoutObservable ...)
first.tsタイプ/ノックアウト@利用できるようにしていることです
second.ts:
import * as ko from "knockout"; // this import makes 'ko' globally available even for first.ts
export class Foo {
bar = ko.observable("bar");
}
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": true,
"sourceMap": false,
"declaration": false,
"noUnusedLocals": true,
"outDir": "dist",
"types": [
]
},
"exclude": [
"node_modules",
"dist"
]
}
完全な解決策はここにあります:https://github.com/kingatlas/typescript-sandbox
どのようにグローバルであることから、KOを防ぐANモジュール(輸入...から)としてそれを使用し続けることができますか?