Javascript Typescript使用句点(.)运算符访问对象充满特定对象的变量

Javascript Typescript使用句点(.)运算符访问对象充满特定对象的变量,javascript,interface,typescript,type-declaration,Javascript,Interface,Typescript,Type Declaration,我有一个打字脚本接口 接口书店{ 图书:{[key:string]:图书} } 我可以用这样的名字读一本书 BookStore.books['OneGoodBookName'] 我需要的是用句号(.)操作符访问它 BookStore.books.OneGoodBookName 不幸的是,我不能做到这一点,互联网也没有帮助这一点。如果我能做到,有什么想法吗 -- 编辑1:更多信息 我无法更改实现。只在接口中声明,因为它是其他人在Javascript代码中使用的库的声明文件。我不想让开发人员在

我有一个打字脚本接口

接口书店{
图书:{[key:string]:图书}
}
我可以用这样的名字读一本书

BookStore.books['OneGoodBookName']
我需要的是用句号(.)操作符访问它

BookStore.books.OneGoodBookName
不幸的是,我不能做到这一点,互联网也没有帮助这一点。如果我能做到,有什么想法吗

--

编辑1:更多信息


我无法更改实现。只在接口中声明,因为它是其他人在Javascript代码中使用的库的声明文件。我不想让开发人员在迁移到TypeScript时更改JS代码。

您可以这样访问它:

var bs: BookStore;
//...
var book = <Book>((<any>bs.books).OneGoodBookName);
var-bs:书店;
//...
var book=((bs.books.OneGoodBookName);

但在这种情况下,您将丢失typescript:

提供的类型检查,这需要我在实现中更改代码。我无法更改实现,因为它是由其他开发人员编写的。我正在为库创建一个TS声明文件,供人们在JS应用程序中使用。我不想强迫人们在将JS应用迁移到TS时更改代码。不,这不需要更改实现,因为TypeScript将编译
((bs.books.OneGoodBookName)
bs.books.OneGoodBookName
。然而,它相当难看,因此如果您不打算使用索引表示法,那么只编写
接口书店{books:any}
让book:book=bs.books.OneGoodBookName
可能更容易。