gpt4 book ai didi

angularjs - 带有 angular.js 1.6.4 的 angular ui-router 1.0.3 似乎使用了错误的 Promise 类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:58 24 4
gpt4 key购买 nike

版本

  • Angular 1.6.4
  • typescript 2.3.2
  • 用户界面路由器 1.0.3
  • 希望不相关(因为我不喜欢处理 webpack 问题),但与 webpack 2.5.1 和 ts-loader 2.0.3 捆绑在一起。

问题

这是一个问题,而不是 ui-router 的 github 上的声明性问题,因为我不太确定根本原因分析或正确修复。我也不确定这是否是我们 typescript 环境中的问题。

我正在关注 https://ui-router.github.io/guide/ng1/migrate-to-1_0将我们现有的应用程序(混合 js/typescript)迁移到 ui-router 1.0.3。特别是遇到问题:

// Migrate to: UI-Router 1.0 Transition Hook
app.run(function($transitions) {
$transitions.onStart({ }, function(trans) {
var SpinnerService = trans.injector().get('SpinnerService');
SpinnerService.transitionStart();
trans.promise.finally(SpinnerService.transitionEnd);
});
})

我在引用 finally 行时收到以下错误:

error TS2339: Property 'finally' does not exist on type 'Promise'.

我的确切代码如下:

import router = require("@uirouter/angularjs"); 
// <snip a bunch of boilerplate>

constructor($scope: angular.IScope, $transitions: router.TransitionService) {
this.loading = true;
$transitions.onStart({}, (trans: router.Transition) => {
this.setLoading(true)();
trans.promise.finally(this.setLoading(false));
});
}

我们有一个简单的 tsconfig,如下所示:

{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"target": "es5",
"sourceMap": true,
"module": "commonjs"
},
"exclude": [
"node_modules"
]
}

当我试图找到根本原因时,我发现 ui-router 的声明文件将 .promise 的类型设置为 Promise。我的 IDE(带潮汐的 emacs)不知道这个 Promise 来自哪里,但我猜它是 es6 Promise 接口(interface)( mozilla doc ),它不包括 finally。

但是,根据预期(和上面的指南),我假设他们实际上使用了 ng.IPromise(angular.js 的 promise 实现,详情请参见 $q service)。

如果(如果)我的理解是正确的,这意味着这是他们类型声明中的错误,他们应该将他们的 promise 类型定义为不同的类/类型。

如果是,我会提交一个错误,但我会对制定本地解决方法的正确方法感兴趣,因为我不确定我应该怎么做。

是这种情况还是其他问题的根本原因?

最佳答案

我收到了几乎相同的消息,

"Property 'finally' does not exist on type 'Promise<boolean>'."

我追溯到我在代码中看到 Promise 的地方,记得在某处读到不要使用 Object 而是使用 object 。一旦我将其更改为对象,错误就消失了。

关于angularjs - 带有 angular.js 1.6.4 的 angular ui-router 1.0.3 似乎使用了错误的 Promise 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com