开发 angular 4 组件时是否应该包含打字稿库设置 dom?

Should the typescript lib setting dom be included when developing an angular 4 component?

this article on distributing an angular library 中,作者说不要直接接触 dom 是个好主意,因为它会使组件在 web workers 中无法使用。

因此我们应该将 dom 排除在 typescript lib 编译器选项之外,还是在某些用例中我们绝对需要它?这是一个包含 dom 的示例:

"compilerOptions": {
  "target": "es5",
  "module": "es2015",
  "lib": ["es2015", "dom"]
},

示例 tsconfig.json compiler options 包括 dom ...

typescript lib setting dom be included when developing an angular 4

是的。

原因

Angular是为DOM设计的。

没有 "dom" 就无法编译。原因是 angular 库导出 methods/classes consume/return "dom" 类型。所以当你针对 angular 进行编译时,你的编译失败了,因为它找不到类型。