Typescript:将对象或数组输入为rxjs时收到错误主题变量
问题描述:
我的代码段。Typescript:将对象或数组输入为rxjs时收到错误主题变量
signUpInfo: {code: string, message: string}
= new Subject<{code: string, message: string}>();
错误的Atom编辑器给了我。
类型“主题< {代码:串,消息:字符串}>不是分配给 类型 '{代码:串,消息:字符串}'。在 类型'主题< {code:string,message:string}>'中缺少属性'代码'。
卸下在该变量中的分型,由any
或{}
类型替换去除错误。
signUpInfo = new Subject<{code: string, message: string}>();
signUpInfo: any = new Subject<{code: string, message: string}>();
signUpInfo: {} = new Subject<{code: string, message: string}>();
signUpInfo = new Subject<{code: string, message: string}>();
signUpInfo: any[] = new Subject<model[]>();
我习惯把typeings在TS每个变量,我经常路过类型,比如串号布尔等时,但通过数组或对象作为主题变量分型时,似乎我不是没有问题允许它。
在打字稿中键入对象或数组主体变量的正确方法是什么?
答
正确的方法是设置:
signUpInfo: Subject<{code: string, message: string}> = new Subject<{code: string, message: string}>();
其实我觉得你甚至都不需要设置类型,因为它是当你分配给它的Subject<{code: string, message: string}>
一个实例自动假定。所以如果你试图调用signUpInfo.next(1)
,编译器会抛出一个类型错误。
+0
谢谢你,我明白了为什么有很多主题变量片段没有类型 – Vadamadafaka
A主题就像一个电话:它**发出**消息。电话不是信息。变量的类型应该是您在等号右侧使用的类型:Subject –
谢谢@JBNizet – Vadamadafaka