angular - typescript - 类型 'userId' 上不存在属性 'unknown'

标签 angular typescript rxjs

我有以下在 Typescript 中练习 rxJS 的简单代码。

import fetch from 'node-fetch';
import {
    Observable, Subject, asapScheduler, pipe, of, from,
    interval, merge, fromEvent, SubscriptionLike, PartialObserver
} from 'rxjs';
import { map, filter, scan } from 'rxjs/operators';

function getUserId() {
    return from<Promise<{userId: number}>>(
        fetch('https://jsonplaceholder.typicode.com/posts/1').then(r => r.json())
    )
    .pipe(map(v => v.userId))
    .subscribe(console.log);
}

getUserId();

为什么命令提示符会抛出错误?

C:\Users\Administrator\Downloads\typescript>ts-node from.ts

C:\Users\Administrator\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:423

    return new TSError(diagnosticText, diagnosticCodes)
           ^
TSError: ⨯ Unable to compile TypeScript:
from.ts:12:22 - error TS2339: Property 'userId' does not exist on type 'unknown'
.

12     .pipe(map(v => v.userId))
                        ~~~~~~
...

我认为代码应该可以工作,因为 userId 已经在 return from<Promise<{userId: number}>>{... 中定义了

VScode 还给了我与 userId 相关的错误消息 Property 'userId' does not exist on type 'unknown'.ts(2339)

最佳答案

请在下面尝试。

替换

v.userId

v['userId']

关于angular - typescript - 类型 'userId' 上不存在属性 'unknown',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61410746/

相关文章:

angular - 在 Typescript 中的映射内部分配 Observable 时出现未定义问题

javascript - Angular2 Observables 最佳实践

angular - 当多个 RxJS forkjoin 完成时如何采取行动?

在使用浏览器的刷新按钮重新加载应用程序之前,Angular 路由器链接不起作用

angular - Ionic 3 组件与页面

css - Angular 材互补

angular - 如何在 Angular 4 中将组件声明为 FormControl?

javascript - "ng-circle-progress"% 属性仅在 renderOnClick 属性设置为 true 时有效

angular - 如何 forkJoin() void 函数?

JQuery Xeditable 不适用于 Angular2