javascript - Typescript 使用點號 (.) 運算子訪問包含特定物件的物件變數
我有一個 TypeScript 介面
interface BookStore {
books: { [key: string]: Book }
}
我可以像這樣通過它的名字訪問一本書
BookStore.books['OneGoodBookName']
我需要的是使用句點 (.) 運算子來存取它
BookStore.books.OneGoodBookName
不幸的是,我無法做到這件事,而且互聯網到目前為止也沒有提供幫助。有人知道我是否可以做到嗎?
--
編輯 1:更多資訊
我不能改變實作。只能改變介面中的宣告,因為這是其他人用在他們的 Javascript 代碼中的函式庫宣告文件。我不想讓開發者在遷移到 TypeScript 時更改他們的 JS 代碼。
答案#1
你可以這樣訪問它:
var bs: BookStore;
//...
var book = <Book>((<any>bs.books).OneGoodBookName);
但在那種情況下,你將失去 TypeScript 提供的類型檢查:
