我的片段。
signUpInfo: {code: string, message: string}
= new Subject<{code: string, message: string}>();
错误Atom编辑器给了我。
输入'主题&lt; {code:string,message:string}&gt;'不能转让给 输入'{code:string,message:string}'。财产'代码'缺少 输入'Subject&lt; {code:string,message:string}&gt;'。
删除变量中的输入,替换为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[]>();
我习惯在TS中的每个变量上输入一个类型,在传递常规类型(如字符串数字布尔等)时没有问题,但是当传递数组或对象作为主题变量类型时,似乎我不允许它。
在typescript中输入对象或数组主题变量的正确方法是什么?
答案 0 :(得分:3)
正确的方法是设置:
signUpInfo: Subject<{code: string, message: string}> = new Subject<{code: string, message: string}>();
实际上我认为您甚至不需要设置类型,因为当您为其分配Subject<{code: string, message: string}>
的实例时会自动设置该类型。因此,如果您尝试调用signUpInfo.next(1)
,编译器将抛出类型错误。