angular - 类型“未知”不可分配给类型“键盘事件”.ts (2345)
问题描述
我正在学习 TypeScript 和 Angular,并且在我的书中遇到了一个无法编译的示例。恐怕我不知道如何解决这个问题。
这是无法编译的函数:
ngOnInit(): void {
const logger = fromEvent(this.input.nativeElement, 'keyup');
logger.pipe(
map((evt: KeyboardEvent) => evt.key.charCodeAt(0)),
filter(code => {
if (this.numeric) {
return !(code > 31 && (code < 48 || code > 57));
}
return true;
}),
tap(digit => this.keys += String.fromCharCode(digit))
).subscribe();
}
不会编译的特定行是:
map((evt: KeyboardEvent) => evt.key.charCodeAt(0)),
我看到以下错误:
Argument of type 'OperatorFunction<KeyboardEvent, number>' is not assignable to parameter of type 'OperatorFunction<unknown, number>'.
Type 'unknown' is not assignable to type 'KeyboardEvent'.ts(2345)
解决方案
只是告诉 ts 这个流将是键盘事件流
const logger = fromEvent<KeyboardEvent>(this.input.nativeElement, 'keyup');
这个<Type>
参数使记录器Observable<KeyboardEvent>
和 ts 不会抱怨它
推荐阅读
- python - 将字典中的 numpy 数组添加到数据框
- amazon-web-services - AWS S3 Select 中的 SKIP/OFFSET/ScanRange 行
- python - 如何在python3中动态更新多行的终端输出?
- r - 如何在 [r] 中诱导两个逆累积概率分布之间的相关性?
- scala - 构成隐式推导“定律”
- java - 使用 Mediaprojection 时已放弃 BufferQueue
- powershell - 在powershell中将网络打印机设置为默认打印机
- http - Set-Cookie 标头不能跨域工作
- python-3.x - 通过 abc 创建每个可能的字符串组合
- php - 需要帮助在 hmvc codeigniter 中集成 CKEditor 和 CKFinder