小编Dra*_*g13的帖子

如何在 Typescript 类中使用 Yield

我对 Typescript 比较陌生,在从该网站学习时,我了解到,yield 可以用于使用 for-await-of 进行异步迭代。下面是 Javascript 中的函数。请帮助我如何在 Typescript 类中使用。当我编写以下代码时,出现错误TS1163:“yield”表达式仅允许在生成器主体中使用。 我想在 Typescript 类中编写以下代码

https://blog.bitsrc.io/keep-your-promises-in-typescript-using-async-await-7bdc57041308

function* numbers() {
  let index = 1;
  while(true) {
    yield index;
    index = index + 1;
    if (index > 10) {
      break;
    }
  }
}

function gilad() {
  for (const num of numbers()) {
    console.log(num);
  }
}
gilad();
Run Code Online (Sandbox Code Playgroud)

我也尝试在 Typescript 类中编写,但它给出了编译问题。

public getValues(): number {
        let index = 1;
        while(true) {
            yield index;
            index = index + 1;
            if (index > 10) { …
Run Code Online (Sandbox Code Playgroud)

typescript typescript3.0

9
推荐指数
1
解决办法
1万
查看次数

高阶函数,如何在不铸造的情况下从模型中推导出注入类型

我有点坚持这个非常简单的想法:

想象一下,我们有一个简单的高阶函数,它接受另一个函数和某个对象并返回另一个函数:

const hof = (callback, data)=> (model) => callback({...data, ...model});
Run Code Online (Sandbox Code Playgroud)

现在我想做的是:

  • 类型安全
  • type-smart - 从model已经存在 id 的属性中排除data

第一眼看上去可能是这样的:

const hof = <TModel extends object, TInject extends Partial<TModel>, TRes>(callback: (m: TModel) => TRes, inject: TInject) =>
    (m: Omit<TModel, keyof TInject> ) =>
        callback({ ...inject, ...m})
Run Code Online (Sandbox Code Playgroud)

但是,它会产生错误:

“TInject & Omit<TModel, keyof TInject>”类型的参数不可分配给“TModel”类型的参数。“TInject & Omit<TModel, keyof TInject>”可分配给“TModel”类型的约束,但“TModel”可以使用约束“object”的不同子类型进行实例化。

这实际上很好,因为这突出了下一个(无效)情况:

hoc((m: { name: string }) => m.name, { name: '' })('STRING IS UNWANTED');
Run Code Online (Sandbox Code Playgroud)

为了避免这种情况,我将其重写hoc为下一个(注意条件运算符):

const hoc = <TModel extends …
Run Code Online (Sandbox Code Playgroud)

typescript

7
推荐指数
1
解决办法
377
查看次数

为什么打字稿字符串和数字从不显示?

我正在研究 Typescript,但我有一些困惑。

type t = number & string // never
type t1 = number & boolean // never
type t2 = number & string[] // number & string[]
Run Code Online (Sandbox Code Playgroud)

为什么看起来不一样?

typescript

6
推荐指数
1
解决办法
94
查看次数

有没有可能从xml中读取每个节点

我正在使用 Angular 7。

<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <Employees>
    <Employee>
    <Name>nameOne</Name>
    <Id>IdOne</Id>
    </Employee>
    <Employee>
    <Employee-Name>empName</Employee-Name>
    </Employee>
    <Employee>
    <Employee-Id>IdEmp</Employee-Id>
    </Employee>
    </Employees>
</note>
Run Code Online (Sandbox Code Playgroud)
  • 客户端上传不同的 .XML 文件,每个文件必须有 但父节​​点在上传的文件中可能不同..

  • 需要读取每个节点并进行比较 有或没有,如果是,那么我们将使用该 ID

  • 我的代码

const parser = new xml2js.Parser({ strict: false, trim: true });
parser.parseString(uploadedXMLData, (err, result) => {
    const obj: any[] = result;
    console.log(result);
    Object.entries(obj).forEach((data, index) => {
        console.log('Data::: ', data, index);
        data[0]['NOTE'].forEach((empData, indexNumber) => {
            console.log('Emp Data::: ', empData, indexNumber);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)
  • 但是使用此代码能够获得特定的节点值,如empData.Employee[1].EmployeeName[1].Employee-Name
  • 如何打印每个节点
  • 提前致谢

javascript typescript angular angular7

2
推荐指数
1
解决办法
124
查看次数