我对 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) 我有点坚持这个非常简单的想法:
想象一下,我们有一个简单的高阶函数,它接受另一个函数和某个对象并返回另一个函数:
const hof = (callback, data)=> (model) => callback({...data, ...model});
Run Code Online (Sandbox Code Playgroud)
现在我想做的是:
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,但我有一些困惑。
type t = number & string // never
type t1 = number & boolean // never
type t2 = number & string[] // number & string[]
Run Code Online (Sandbox Code Playgroud)
为什么看起来不一样?
我正在使用 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)