我想切換到我的打字稿2.0項目中使用嚴格null檢查,但我有,如果你想與我的一個依賴(依賴祖父母的依賴的分型一些困難)。覆蓋打字嚴格的空檢查
更詳細地說,我有依賴關係B
和C
,這兩者都取決於A
。所有這些都是經過傳輸的TS項目,代碼和類型可在lib
文件夾中找到,並且它們尚未切換到嚴格的空檢查。是
在A
相關的分型似如下:
interface IInterface {
[key: string]: string;
}
這是在兩個B
和C
使用方法如下:
import { IInterface } from 'A/lib/iinterface';
interface IExtended extends IInterface {
myOptionalProperty?: string
}
憑藉嚴格的null檢查,這給下面的編譯錯誤:
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'
接下來的問題是雙重的:
遵守嚴格的檢查,需要改變以A打字:
interface IInterface { [key: string]: string | undefined; }
我不知道是否有可能重寫這種一個類型,因爲這不僅僅是現有類型的擴展。如果可能的話,它是如何完成的?
如果可能的話,應如何納入,使得
B
和C
的分型是針對我重寫打字檢查,沒有什麼是他們的本地node_modules
目錄?
理想的解決方案,當然是有項目'A'添加這些分型的自己,我已經有一個公關到效果,但會有相當在接受並傳播到項目'B'和'C'之前的一段時間,所以我正在尋找臨時解決方法。 – Vidar