我在Angular 7项目中遇到以下错误。我已经使用npm安装了打字稿,这可能意味着最新的打字稿版本。
错误TS2339:类型'Subject
'上不存在属性'startWith'。
app.component.ts
this.language
.startWith(this.translationService.getBrowserLang())
.subscribe(lang => this.store.dispatch(new LanguageAction(lang)))
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
}
}
答案 0 :(得分:1)
您正在尝试以错误的方式使用。
您还必须在主题上使用pipe
。
https://www.learnrxjs.io/operators/combination/startwith.html
此外,当您使用主题时,它不再是字符串。 并且您正在尝试使用字符串实用程序。
答案 1 :(得分:1)
就像@The Mechanic已经说过的那样,您正在尝试直接在startWith
上使用Subject
方法。从5.5版开始,运算符为pipeable。如果要过滤出正确的值,请改用此方法:
this.language.pipe(
startWith(this.translationService.getBrowserLang())
).subscribe(lang => this.store.dispatch(new LanguageAction(lang)));