我的情況:類型檢查的打字稿一串代碼
- 我有一個包含了API響應類型的信息庫。 (例如:獲取用戶對象返回一個對象
{ id: number, name: string }
)。 - 我想驗證我是否正確寫入了我的類型,並在API更改時發現任何問題。
什麼我迄今所做的:
我有一些生成代碼打字稿,基本上從API中提取數據,然後看是否打字稿編譯同意其接口相匹配的程序。
最終結果看上去像:
import { User } from './user';
function verify<T>(data: T) {}
verify<User>({ id: 123, name: 'Joe' });
verify<User>({ id: 123, name: 17 }); // <-- obviously, this should give an error
生成該代碼全部完成,但是我現在需要讓編譯器類型檢查。我一直在打字稿編譯器API一段時間,並繼續陷入困境,因爲所有似乎做我所需要的功能都採取文件名(即:磁盤上的路徑)而不是一串代碼。我明白,由於引用其他文件,需要有一個與代碼相關的路徑,但我找不到任何方式將其傳入。
我想避免必須將這些文件寫入磁盤,因爲
一)似乎有點傻,因爲它只是將是從磁盤讀取然後
二)它可能會獲得在源文件中相當混亂,或我必須把它放在一個單獨的文件夾,然後重寫所有的導入語句。
的TL,我的問題的DR爲:
有沒有辦法爲類型檢查的打字稿一串代碼?
我相信你必須掛鉤[TypeScript語言服務](https://github.com/Microsoft/TypeScript/wiki/Using-the-Language-Service-API)。 –
具體而言,「對於不想選擇增量解析的用戶,請使用'ts.ScriptSnapshot.fromString()'」 –
@SeanVieira確定,但那又如何?我有一個快照...和? – nickf