- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在重新写我的问题,因为之前它没有什么意义,而且我不是很清楚。
我从 API 接收的数据看起来像这样:
{"photos":[{"id":1,"title":"photo_1_title"}]}
因此,在我的代码中,我有一个 photos
变量和一个名为 getPhotos()
的方法
我正在使用无限滚动,所以当我到达页面底部时,我再次调用 getPhotos()
。
photos: any;
getPhotos() {
this.photoService.getPhotos()
.subscribe(
photos => this.photos = photos
// here, instead of doing this, I want to add the array of photos I get back to this.photos using Object.assign however it is giving me the said error
)
}
所以如果下次我调用它时,我返回 {"photos":[{"id":2,"title":"photo_2_title"}]}
,那么我正在尝试将 this.photos
设置为
{"photos":[{"id":1,"title":"photo_1_title"}, {"id":2,"title":"photo_2_title"}]}
谁能帮我解释一下原因
jsfiddle.net/ca46hLw9 不起作用?我认为 assign 应该将对象的内容合并在一起,对吗?
最佳答案
Object.assign
是 ECMAScript2015 功能,在 ECMAScript5 及更低版本中不存在。
您的目标很可能是为 ECMAScript5 编译您的 Typescript,因此对象接口(interface)没有 assign
定义。
您可以通过更改 TS 编译器配置来定位 ECMAScript2015
target: 'es6'
或者您可以使用 assign
方法扩展 ObjectConstructor 接口(interface)
declare interface ObjectConstructor {
assign(...objects: Object[]): Object;
}
(你可以在任何地方添加这个声明,重新声明一个接口(interface)扩展它而不是覆盖它)
或者你可以强制Object
至 any
并忽略它的类型:
(<any>Object).assign( this.photos, photos )
无论您选择哪种方式,请记住,如果您希望它在旧版浏览器上运行,您需要添加一个 polyfill。大多数现代浏览器都相当接近实现 ES2015 功能集,但它们并不是 100% 实现了,这意味着如果您依赖 ES2015 功能,您的代码的某些部分仍然会失败。
Typescript 不会 polyfill Object.assign
当以 ES5 或更早版本为目标时,这就是您收到此错误的原因。另一方面,Babel 确实有插件形式的 polyfill,这意味着您需要将 Babel 转译合并到您的构建管道中,请参阅:https://babeljs.io/docs/plugins/transform-object-assign/
作为最后一个选项,您可以考虑使用像 Lodash 或 jQuery 这样的库,它们有自己的 Object.assign
实现。 (称为 extend
)
关于javascript - 使用 TypeScript 和 Object.assign 给我一个错误 "property ' assign' does not exist on type 'ObjectConstructor' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860161/
我在 SQL 查询中使用了一个简单的 IF NOT EXISTS/WHERE NOT EXISTS 语句(我都尝试过),但我总是收到 mysql 错误,不知道为什么。尝试使用不同的引号,检查我的 My
我有 2 个表:tbl1 和 tbl2。我想从 tbl1 返回一行,其中包含以下列:col1、col2、col3、can_be_deleted 、有重要项目。这个想法是,can_be_deleted
如果您是 "t1".persona_1_id = 2,则预期结果应返回 persona_id = 4。 like --- id persona_1_id persona_2_id liked 1 2
我遇到了这个用于执行幂等插入的 github SQL 代码示例。完全按照我想要的方式工作。我不想使用 EXISTS,因为我觉得它有点困惑。可以使用联接对相同的操作进行编码吗? 下面是我在 github
public bool CheckTblExist(string TblName) { try { string cmTxt = "s
表1 Id Name DemoID 1 a 33 2 b 44 3 c 33 4 d 33 5 e 44 表2 Id DemoID IsT
我对 SQL 非常陌生。我想知道当我使用“IF EXISTS”或“IF NOT EXISTS”时会发生什么。例如:以下两个语句有什么区别: 语句 1:(存在) IF EXISTS( SELECT OR
我正在更新 exist-db 集合中的 XML 文件,我必须检查是否存在 id 以决定是否必须在我的文档中替换或插入某些内容。 我注意到随着文件的增长,查询执行时间显着恶化,我决定为我的文件添加一个索
我有一个正在尝试更新的数据库,但我不明白为什么会收到有关不存在的列的奇怪错误。当我使用“heroku pg:psql”访问数据库时,我完全可以看到该列。我找到了couple其他questions遇到类
我有一个这样的查询 SELECT ... FROM ... WHERE (SELECT EXISTS (SELECT...)) which did not return anything th
我有一个可以对数据库执行插入和更新的程序,我从 API 获取数据。这是我得到的示例数据: $uname = $get['userName']; $oname = $get['offerNa
我的批处理文件中有这个脚本 -- if not exist "%JAVA_HOME%" ( echo JAVA_HOME '%JAVA_HOME%' path doesn't exist) -
有没有办法让 Directory.Exists/File.Existssince 区分大小写 Directory.Exists(folderPath) 和 Directory.Exists(folde
考虑使用这两个表和以下查询: SELECT Product. * FROM Product WHERE EXISTS ( SELECT * FROM Codes
我正在使用 Subclipse 1.6.18 使用 Eclipse 3.72 (Indigo) 来处理 SVN 1.6 存储库。这一切都在 Ubuntu 下运行。 我有一个项目,在我更新我的 Ecli
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
我有兴趣为需要使用 NOT EXISTS 的应用程序编写查询。子句来检查一行是否存在。 我正在使用 Sybase,但我想知道一般 SQL 中是否有一个示例,您可以在其中编写具有 NOT EXISTS
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
下面是代码示例: CREATE TABLE #titles( title_id varchar(20), title varchar(80)
我曾经这样编写 EXISTS 检查: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET
我是一名优秀的程序员,十分优秀!