私のtypescript 2.0プロジェクトで厳密なヌルチェックを使用するように切り替える必要がありますが、私の依存関係(依存関係の祖父母)の入力に問題があります)。厳密なヌルチェックのオーバーライド
より詳細には、私は依存関係B
とC
の両方がA
に依存しています。これらのすべては、コード化されたTSプロジェクトで、lib
フォルダにあるコードとタイピングが使用されており、厳密なヌルチェックに切り替えられていません。次のように両方のB
とC
で使用されている
interface IInterface {
[key: string]: string;
}
:厳密にはnullチェックして
import { IInterface } from 'A/lib/iinterface';
interface IExtended extends IInterface {
myOptionalProperty?: string
}
が、これは次のコンパイルエラーを与える次のようA
で
関連タイピングは以下のとおりです。
node_modules/B/lib/extended.d.ts(4,3): error TS2411: Property 'myOptionalProperty' of type 'string | undefined' is not assignable to string index type 'string'
node_modules/C/lib/extended.d.ts(4,3): error TS2411: Property 'myOptionalProperty' of type 'string | undefined' is not assignable to string index type 'string'
の質問は、二重その後、次のとおりです。
interface IInterface { [key: string]: string | undefined; }
私はそのような上書きすることが可能であるかどうかわからないです:
厳しいチェックに準拠するため、Aでのタイピングに変更する必要がありますこれは単に既存の型の拡張ではないため、型を使用します。可能であればどうしますか?
可能であれば、どのように彼らの地元
node_modules
ディレクトリにあるものB
とC
でタイピングが私のオーバーライドされたタイピングに対してチェックされるように含まれており、ではないすべきですか?
理想的なソリューションは、プロジェクト 'A'は、これらのタイピングそのものを追加持つことはもちろんである、と私はすでにその旨のPRを持っていますが、かなりあるだろうこれが受け入れられ、プロジェクト 'B'と' C'に伝播する前に、私は一時的な回避策を探しています。 – Vidar