小编Eld*_*dar的帖子

升级到 Angular 12 后,所有材质成分都是“不是已知元素”

升级到 Angular 12 后,虽然我在 app.module.ts 中有所有必需的代码,但所有材质标签都无法识别:例如,对于 mat-checkbox,我在 app.module.ts 中有以下内容

import { MatCheckboxModule } from '@angular/material/checkbox';

@NgModule({
    imports: [
    BrowserModule,  
    MatCheckboxModule,
Run Code Online (Sandbox Code Playgroud)

并在执行时:

“mat-checkbox”不是已知元素:

  1. 如果“mat-checkbox”是 Angular 组件,则验证它是否是该模块的一部分。
  2. 如果“mat-checkbox”是 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”

所有材质标签(mat-icon、mat-table、mat-label ......)都有同样的问题。

在之前的版本(Angular 9)中,一切正常。感谢帮助。

upgrade angular-material angular angular12

8
推荐指数
2
解决办法
2675
查看次数

如何使用 TypeScript 进行类型化元编程?

我正在创建一个接收多个键和值的函数,并且应该返回一个具有这些键及其各自值的对象。值类型应与我调用该函数时传递的值匹配。

目前,该代码可以运行,但类型不准确。

我尝试使用工厂方式,希望打字稿能为我推断一些东西。

这是工厂的代码。另外,这里还有一个游乐场

const maker = (subModules?: Record<string, unknown>) => {
  const add = <Name extends string, Q>(key: Name, value: Q) => {
    const obj = {[key]: value};
    return maker({
      ...subModules,
      ...obj
    })
  }
  const build = () => {
    return subModules
  }

  return {
    add,
    build
  }
}

const m2 = maker()
  .add('fn', ({a, b}: { a: number, b: number }) => a + b)
  .add('foo', 1)
  .add('bar', 'aaaa')
  .build()
// m2.foo -> 1
// m2.bar -> …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics

5
推荐指数
1
解决办法
1310
查看次数