我有以下在 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/