Ala*_*ros 16 typescript tsconfig angular
我的一个组件中有这个:
\npublic booleanSubject: BehaviorSubject<boolean> = new BehaviorSubject(false);\nRun Code Online (Sandbox Code Playgroud)\n当我添加"strictFunctionTypes": true到tsconfig.json文件时,出现以下错误:
\xc3\x97 Compiling TypeScript sources through NGC\nERROR: path/to/my/component.component.ts:28:10 - error TS2322: Type \'BehaviorSubject<false>\' is not assignable to type \'BehaviorSubject<boolean>\'.\n Types of property \'observers\' are incompatible.\n Type \'Observer<false>[]\' is not assignable to type \'Observer<boolean>[]\'.\n Type \'Observer<false>\' is not assignable to type \'Observer<boolean>\'.\n Type \'boolean\' is not assignable to type \'false\'.\n\n28 public booleanSubject: BehaviorSubject<boolean> = new BehaviorSubject(false);\nRun Code Online (Sandbox Code Playgroud)\n有谁知道原因以及如何通过将标志设置为不抛出strictFunctionTypes错误true?
Igo*_*iro 17
通常,当我创建一个BehaviorSubject时,我只是在初始化它时为其分配一个类型。尝试像这样:
public booleanSubject = new BehaviorSubject<boolean>(false);
Run Code Online (Sandbox Code Playgroud)
这样做会将BehaviorSubject 类型初始化为布尔值,我相信错误将会消失。
伊戈尔·梅洛·特尔黑罗的回答很切题。只是为了延长一点。
您可以使用 声明该字段 public booleanSubject = new BehaviorSubject(false);
,它会自动推断出正确的类型BehaviorSubject<boolean>
或者,您可以使用类型声明字段,但声明时分配的值也必须是该类型。
public booleanSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
| 归档时间: |
|
| 查看次数: |
7412 次 |
| 最近记录: |