使用Angular运行时,出现Javascript getters and setters in this Abstract Typescript class的错误TS1086: An accessor cannot be declared in an ambient context.
。
这是来源:
/**
* The current id key for the EStore instance.
* @return this.config.idKey;
*/
get ID_KEY(): string {
return this.config.idKey
}
/**
* The current guid key for the EStore instance.
* @return this.config.guidKey;
*/
get GUID_KEY(): string {
return this.config.guidKey
}
直到最新版本的Angular都运行良好。我们不再允许在Abstract类中使用getter和setter吗?
答案 0 :(得分:1)
这不是Angular错误。
TypeScript 3.7对类型定义文件中的getter和setter进行了重大更改。
如上所述,TypeScript 3.7在.d.ts文件中发出get / set访问器,这可能导致使用方3.5和更低版本的TypeScript的使用者发生重大更改。 TypeScript 3.6用户将不会受到影响,因为该版本已针对该功能在将来进行过验证。
如果要使用3.7或更高版本生成的类型定义,则应该使用TypeScript 3.6或更高版本。
答案 1 :(得分:0)
我在google-auth-library中也遇到了类似的问题。
我正在Ubuntu上,并调用tsc将我的nodejs服务器从打字稿转换为javascript,但是运行'tsc'会抛出'TS1086:无法在环境上下文中声明访问器”错误。
最初,我尝试通过从服务器目录运行npm install typescript @ latest来更新Typescript,但仍然看到错误。
我必须更新我的打字稿的全局版本,以便可以运行“ tsc”,但是运行npm install typescript @ latest -g也会引发错误。我必须删除/ usr / bin /中的tsc链接。
我做了什么修复:
$ cd /usr/bin
$ sudo rm tsc
$ sudo npm install -g typescript@latest
此后,调用“ tsc”的操作没有错误。